TIL
TIL 55일차- 최종프로젝트
김태준(Android_3기)
2024. 6. 7. 19:56
트러블슈팅 (까지는 아니고 수정사항...)
버튼이 정상적으로 눌리지 않는 문제
원인 : 레이아웃 파일을 보면 CardView 안에 ImageButton이 들어가 있는 형태이다
<com.google.android.material.card.MaterialCardView
android:id="@+id/cd_search_transportation_public"
android:layout_width="80dp"
android:layout_height="80dp"
app:cardBackgroundColor="@color/white"
android:elevation="2dp"
app:cardCornerRadius="3dp"
app:strokeColor="@color/black"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/tv_search_transportation_title"
android:layout_marginStart="70dp"
android:layout_marginTop="35dp" >
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="match_parent" >
<androidx.appcompat.widget.AppCompatImageButton
android:id="@+id/btn_search_transportation_public"
android:layout_width="40dp"
android:layout_height="40dp"
android:background="@drawable/ic_bus_24dp"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toBottomOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
</com.google.android.material.card.MaterialCardView>
하지만 setOnClickListener를 cardView에만 달아줘서 상위 view인 ImageButton가 cardView를 가리면서 생기는 문제였다.
private fun initView(){
binding.apply {
cdSearchTransportationCar.setOnClickListener {
viewModel.getParkingData()
binding.cdSearchTransportationCar.setBackgroundColor(ContextCompat.getColor(requireContext(), R.color.neomint))
binding.cdSearchTransportationPublic.setBackgroundColor(ContextCompat.getColor(requireContext(), R.color.white))
}
btnSearchTransportationCar.setOnClickListener {
viewModel.getParkingData()
binding.cdSearchTransportationCar.setBackgroundColor(ContextCompat.getColor(requireContext(), R.color.neomint))
binding.cdSearchTransportationPublic.setBackgroundColor(ContextCompat.getColor(requireContext(), R.color.white))
}
cdSearchTransportationPublic.setOnClickListener {
viewModel.usePublic()
binding.cdSearchTransportationPublic.setBackgroundColor(ContextCompat.getColor(requireContext(), R.color.neomint))
binding.cdSearchTransportationCar.setBackgroundColor(ContextCompat.getColor(requireContext(), R.color.white))
}
btnSearchTransportationPublic.setOnClickListener {
viewModel.usePublic()
binding.cdSearchTransportationPublic.setBackgroundColor(ContextCompat.getColor(requireContext(), R.color.neomint))
binding.cdSearchTransportationCar.setBackgroundColor(ContextCompat.getColor(requireContext(), R.color.white))
}
tvSearchTransportationNext.setOnClickListener {
val searchPeopleFragment = SearchPeopleFragment()
val transaction = parentFragmentManager.beginTransaction()
transaction.replace(R.id.fr_main, searchPeopleFragment)
transaction.addToBackStack(null)
transaction.commit()
}
}
}