공부일지
231206 (Android)
CD가참둥그렇다
2023. 12. 6. 13:47
메뉴 리소스
- id, icon, showAsAction, title 요소를 가져야 한다.
- showAsAction 종류
- never : 아이템 표시 x
- ifRoom : 표시 공간이 있다면 표시
- withText : 글자와함께 표시
- always : 항상 보이기
- 하단 네비게이션 바 만들기
<com.google.android.material.bottomnavigation.BottomNavigationView
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:labelVisibilityMode="labeled"
app:itemIconTint="@drawable/btm_nav_selector"
app:itemTextColor="@drawable/btm_nav_selector"
app:menu="@menu/btm_nav_menu"/>
//뒤의 물결은 itemBackground 속성으로 색을 바꿀 수 있다.
뷰 결합(View Binding)
- 레이아웃 파일 내부에 있는 자원을 자바의 객체 형태로 바꿔 귀찮음
- findViewById과정을 생략하고 싶을 때 사용
- xml 레이아웃 자체를 전부 바인딩 클래스로 미리 생성을 해둔다.(android)
- 바인딩 인스턴스를 생성하여 내부에서 사용 가능한 객체를 만듬. ( LayoutInflater )
- <xml> ↔ 바인딩 인스턴스 클래스 연결
- 순서
- Build.gradle(module)에서 뷰바인딩 사용을 명시한다.
viewBinding{ enable=true }
- 액티비티 자바 파일에서 초기화 하고, contentview를 binding.getRoot()로 바꿔준다.
ActivityMainBinding binding = ActivityMainBinding.inflate(getLayoutInflater()); setContentView(binding.getRoot());
nav의 setOnItemSelectedListener
- onclicklistener와 유사하지만 클릭만으로 제어하기 힘든 경우 사용한다.
- 둘은 파라메터로 받는 타입이 다르다.
액션바
- 이전 안드로이드 버전들에서는 액션바를 많이 활용한다.
- 현재는 액션바 커스텀이 귀찮기 때문에 비슷한 구조의 레이아웃을 만들고 사용한다.
- 테마에서 NoActionbar를 주면 없앨 수 있다.
- 그 외에는 getSupportActionbar라는 메소드로 액션바 접근이 가능하다.
이미지 둥글게 처리하기
- CardView를 이용한 방법
- 이미지뷰를 카드뷰 내에 넣고 스케일 타입을 centerCrop으로 바꾼다.
- 높이 너비는 match
- 카드뷰에 이비지를 어떤 사이즈로 보여줄지 넣어주고 radius를 둥글게 만든다.
- CircleImageView(외부 라이브러리 활용)
- 이미지를 그냥 둥글게 편집
바인딩을 사용한 리사이클러 뷰 만들기
public class CDViewHolder extends RecyclerView.ViewHolder {
ItemFriendRecvBinding binding;
public CDViewHolder(@NonNull ItemFriendRecvBinding binding) {
super(binding.getRoot());
this.binding = binding;
}
}
public CDViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
ItemFriendRecvBinding binding = ItemFriendRecvBinding.inflate(inflater, parent, false);
return new CDViewHolder(binding);
}