Skip to content

Commit ac176bc

Browse files
author
Harun Bekcan
committed
bottomSheet bug fixed
1 parent 2f99928 commit ac176bc

File tree

3 files changed

+19
-25
lines changed

3 files changed

+19
-25
lines changed

app/src/main/java/com/harunbekcan/sampleandroidproject/base/BaseFragment.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,12 +39,12 @@ abstract class BaseFragment<VDB : ViewDataBinding> : Fragment() {
3939
fun showBottomSheet(
4040
context: Context,
4141
title: Int,
42-
listener: BottomSheetDialog.BottomSheetListener,
42+
itemClickListener: BottomSheetDialog.BottomSheetItemClickListener,
4343
approveButtonListener : BottomSheetDialog.BottomSheetApproveButtonListener
4444
) {
4545
bottomSheetDialog = BottomSheetDialog.instance.apply {
4646
setupSheet(context.getString(title))
47-
this.listener = listener
47+
this.itemClickListener = itemClickListener
4848
this.approveButtonListener = approveButtonListener
4949
}.also {
5050
it.show(childFragmentManager, getString(title))

app/src/main/java/com/harunbekcan/sampleandroidproject/ui/fragment/HomeFragment.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ import com.harunbekcan.sampleandroidproject.utils.*
1212
import dagger.hilt.android.AndroidEntryPoint
1313

1414
@AndroidEntryPoint
15-
class HomeFragment : BaseFragment<FragmentHomeBinding>(), BottomSheetDialog.BottomSheetListener,BottomSheetDialog.BottomSheetApproveButtonListener {
15+
class HomeFragment : BaseFragment<FragmentHomeBinding>(), BottomSheetDialog.BottomSheetItemClickListener,BottomSheetDialog.BottomSheetApproveButtonListener {
1616

1717
override fun getLayoutId(): Int = R.layout.fragment_home
1818

app/src/main/java/com/harunbekcan/sampleandroidproject/utils/BottomSheetDialog.kt

Lines changed: 16 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -15,44 +15,38 @@ import com.google.android.material.button.MaterialButton
1515
import com.harunbekcan.sampleandroidproject.BR
1616
import com.harunbekcan.sampleandroidproject.R
1717
import com.harunbekcan.sampleandroidproject.data.BottomSheetModel
18+
import com.harunbekcan.sampleandroidproject.databinding.BottomSheetLayoutBinding
1819
import com.harunbekcan.sampleandroidproject.databinding.ItemBottomSheetLayoutBinding
1920

2021
class BottomSheetDialog : BottomSheetDialogFragment() {
2122

2223
var adapter: LastAdapter? = null
2324
private var titleText: String = ""
2425
private lateinit var titleTextView: TextView
25-
var listener: BottomSheetListener? = null
26+
var itemClickListener: BottomSheetItemClickListener? = null
2627
var approveButtonListener: BottomSheetApproveButtonListener? = null
27-
private lateinit var recyclerView: RecyclerView
28-
private lateinit var approveButton: MaterialButton
2928
var bottomSheetAdapterList = ArrayList<Any>()
3029

3130
@Nullable
3231
override fun onCreateView(
33-
@NonNull inflater: LayoutInflater,
34-
@Nullable container: ViewGroup?,
35-
@Nullable savedInstanceState: Bundle?,
32+
inflater: LayoutInflater,
33+
container: ViewGroup?,
34+
savedInstanceState: Bundle?,
3635
): View {
37-
return inflater.inflate(R.layout.bottom_sheet_layout, container, false)
36+
val rootView = BottomSheetLayoutBinding.inflate(inflater,container,false)
37+
initAdapter(rootView)
38+
titleTextView = rootView.bottomSheetTitleTextView
39+
titleTextView.text = titleText
40+
return rootView.root
3841
}
3942

4043
companion object {
4144
val instance: BottomSheetDialog
4245
get() = BottomSheetDialog()
4346
}
4447

45-
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
46-
super.onViewCreated(view, savedInstanceState)
47-
recyclerView = view.findViewById(R.id.bottomSheetRecyclerView)
48-
titleTextView = view.findViewById(R.id.bottomSheetTitleTextView)
49-
titleTextView.text = titleText
50-
approveButton = view.findViewById(R.id.approveButton)
51-
initAdapter()
52-
}
53-
54-
private fun initAdapter() {
55-
adapter = view?.findViewById<RecyclerView>(R.id.bottomSheetRecyclerView)?.let {
48+
private fun initAdapter(rootView:BottomSheetLayoutBinding) {
49+
adapter = rootView.bottomSheetRecyclerView.let {
5650
LastAdapter(bottomSheetAdapterList, BR.item)
5751
.map<BottomSheetModel>(
5852
Type<ItemBottomSheetLayoutBinding>(R.layout.item_bottom_sheet_layout).onBind { holder ->
@@ -62,19 +56,19 @@ class BottomSheetDialog : BottomSheetDialogFragment() {
6256
holder.binding.languageBottomSheetRadioButton.isChecked = it.isSelected
6357

6458
holder.binding.container.setOnClickListener {
65-
listener?.bottomSheetItemClick(
59+
itemClickListener?.bottomSheetItemClick(
6660
holder.binding.item as BottomSheetModel,
6761
holder.layoutPosition
6862
)
6963
}
70-
approveButton.setOnClickListener {
64+
rootView.approveButton.setOnClickListener {
7165
approveButtonListener?.approveItemClick(
7266
holder.binding.item as BottomSheetModel,
7367
holder.layoutPosition
7468
)
7569
}
7670
}
77-
}).into(recyclerView)
71+
}).into(rootView.bottomSheetRecyclerView)
7872
}
7973
}
8074

@@ -84,7 +78,7 @@ class BottomSheetDialog : BottomSheetDialogFragment() {
8478
}
8579

8680
/** BottomSheet RecList item listener **/
87-
interface BottomSheetListener {
81+
interface BottomSheetItemClickListener {
8882
fun bottomSheetItemClick(item: Any, layoutPosition: Int)
8983
}
9084

0 commit comments

Comments
 (0)