본문 바로가기
728x90

Android43

[안드로이드] 스피너(Spinner)를 이용해 드롭다운 메뉴 구현 및 커스텀하는 방법 어떤 뷰를 터치했을 때 해당하는 메뉴 항목들을 사용자가 선택할 수 있도록 목록으로 펼쳐지는 방식을 드롭다운 메뉴라고 합니다. 드롭다운 메뉴는 안드로이드에서는 스피너(Spinner)를 이용해 구현할 수 있는데 이번 포스팅에서는 스피너를 구현하는 방법과 스피너를 좀 더 보기 좋게 커스텀하는 방법에 대해 알아보겠습니다. 먼저 메뉴의 목록이 될 레이아웃을 설정합니다. item_spinner_buy_option.xml 저는 padding과 텍스트 속성만 변경했지만 자유롭게 뷰를 추가해도 무방합니다. background_spinner_option.xml ( :drawable) 드롭다운 메뉴를 열기 전 보여지는 스피너 항목을 커스텀합니다. 해당 파일은 스피너의 background 속성과 연결되기 때문에 drawabl.. 2023. 1. 19.
[안드로이드] Fragment 터치 시 뒤의 화면까지 터치되는 현상 안드로이드 앱을 개발하면서 액티비티나 프래그먼트 위에 다른 프래그먼트를 겹쳐서 띄우는 경우는 많습니다. 이때, 의도치않게 상단의 프래그먼트를 클릭했지만 하단의 레이아웃까지 터치가 되는 현상이 발생하는데 이를 해결하는 방법에 대해 알아보겠습니다. 문제상황 쇼핑몰과 유사한 형태의 앱을 개발하던 중 상품 상세화면(액티비티)에서 상품을 구매하기 위해 옵션을 선택하는 화면(프래그먼트)을 supportFragmentManager를 통해 Add했습니다. 그리고 옵션(프래그먼트)를 터치했을 때 상품 상세화면(액티비티)까지 함께 터치되는 상황이 발생했습니다. 액티비티가 아니더라도 supportFragmentManager를 통해 프래그먼트에서 다른 프래그먼트를 add하는 경우도 마찬가지입니다. 해결방법 해결방법은 간단합니.. 2023. 1. 19.
[안드로이드] Bottom NavigationView 텍스트, 아이콘 색상 변경 위와 같이 바텀 내비게이션뷰의 메뉴 선택 시 아이템의 색상을 변경하는 방법을 알아보겠습니다. 1. drawable → New → Drawable Resource File에서 bottom_navigation_color.xml를 생성합니다. android:state_checked 속성을 통해 클릭되었을 경우와 클릭되지 않은 경우를 구분합니다. 2. activity_main.xml 그리고 BottomNavigationView의 속성 중 itemTextColor(텍스트 색상)와 itemIconTint(아이콘 색상)을 앞서 만든 xml 파일로 설정합니다. itemTextColor와 itemIconTint의 값을 단일 색상으로 설정하면 메뉴 선택과 관계없이 해당 색상으로 설정됩니다. 2023. 1. 18.
[안드로이드] RecyclerView(리사이클러 뷰) 사용방법 RecyclerView란? 동일한 형식으로 여러 번 반복되는 뷰 그룹을 레이아웃 상에서 일일이 생성하는 것은 매우 비효율적일 것입니다. 동일한 형식으로 반복되는 뷰와 데이터를 처리할 때 RecyclerView 라이브러리를 사용해 요소를 동적으로 생성합니다. RecyclerView는 데이터 집합들을 각각의 개별 아이템 단위로 구성하여 화면에 출력하는 뷰 그룹이며, 많은 데이터를 스크롤 가능한 리스트 형태로 구현할 때 사용합니다. 쉽게 말해, 동일한 형식의 데이터 그룹을 하나의 아이템으로 구성해 아이템 리스트를 출력한다고 볼 수 있습니다. 카카오톡 채팅방이나 SNS 게시물, 배달의 민족 매장 목록 등 많은 앱에서 볼 수 있는 형태입니다. RecyclerView의 주요 클래스 데이터 집합을 각각의 개별 아이템.. 2023. 1. 16.
[Android] 탭 레이아웃(TabLayout) 적용하기 실행결과 TabLayout을 이용해 항목 선택에 따라 FrameLayout의 배경색의 변화를 주었습니다. build.gradle (Module : app) android { ... viewBinding true } dependencies { ... implementation 'com.google.android.material:material:1.7.0' } 뷰 바인딩을 추가하고, TabLayout은 머티리얼 디자인이므로 material 의존성을 추가합니다. activity_main.xml TabLayout 안에 TabItem이 들어가는 형식입니다. 생성할 탭 갯수만큼 TabItem을 생성하고, 탭 이름을 설정합니다. 만약 TabLayout에 TabItem의 갯수가 많아져 좌우로 스크롤이 필요한 경우 ap.. 2023. 1. 14.
[Android] 안드로이드 Retrofit(레트로핏) 사용법 - 경기도데이터드림 OPEN API 사용해보기 Retrofit 이란? 안드로이드에서 Retrofit은 서버와 클라이언트 간 HTTP API 통신을 할 때 사용하는 라이브러리입니다. REST API 기반의 웹 서비스를 통해 JSON 구조의 데이터를 쉽게 가져오고 업로드할 수 있습니다. 또한, 이전에 사용되던 HttpClient와 달리 Retrofit은 별도의 Async Task 없이 자체적으로 백그라운드에서 쓰레드를 관리합니다. 이로 인해, 속도와 성능이 크게 개선되었고, 백그라운드에서 Callback을 통해 메인 쓰레드의 UI를 갱신합니다. Retrofit 인터페이스에서 어노테이션(@)을 사용해 서버에 요청할 함수와 파라미터를 미리 정의해 놓고, 네트워크 통신이 필요할 때 해당 함수를 호출하는 형태이기 때문에 코드를 작성하기도 수월하고 가독성도 좋다.. 2023. 1. 13.
728x90
반응형