我有一个包含列表的recycleview
的fragment
。在fragment
中,我调用另一个底部弹出框dialog fragment
,我想知道当我关闭这个底部弹出框dialog fragment
时,如何刷新基础fragment
中的列表。
我已经尝试了在基础fragment
中使用onPause
和onResume
方法。请帮我解决这个问题。
我有一个包含列表的recycleview
的fragment
。在fragment
中,我调用另一个底部弹出框dialog fragment
,我想知道当我关闭这个底部弹出框dialog fragment
时,如何刷新基础fragment
中的列表。
我已经尝试了在基础fragment
中使用onPause
和onResume
方法。请帮我解决这个问题。
当对话框片段被关闭时,将触发此方法。要在对话框片段中覆盖此方法。
@Override
public void onDismiss(@NonNull DialogInterface dialog) {
super.onDismiss(dialog);
// use interface to callback method in base fragment
}
我不确定,但是我尝试了下面的代码,它有效。
@Override
public void dismiss() {
super.dismiss();
((MyActivity)context).myRefreshFunction();//
}
class GuestFragment : Fragment(){
.
.
.
.
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
binding.tvInfo.setOnClickListener {
val dialogFragment = BottomSheetDogGiveReviewFragment(requireContext(),data.ratingData,data)
// call back method
dialogFragment.setOnBottomSheetDismissListener {
resumeFragment()
}
dialogFragment.show(parentFragmentManager, "My Fragment")
}
}
}
class BottomSheetDogGiveReviewFragment(context: Context) : BottomSheetDialogFragment() {
//this is binding xml file
private var _binding : FragmentBottomSheetDogGiveReviewBinding?=null
private val binding get() = _binding!!
//make this listener through call over Fragment mehod
private var onDismissListener: (() -> Unit)? = null
fun setOnBottomSheetDismissListener(listener: () -> Unit) {
onDismissListener = listener
}
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
// Inflate the layout for this fragment
_binding = FragmentBottomSheetDogGiveReviewBinding.inflate(inflater, container, false)
val view = binding.root
return view
}
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
//button click
binding.tvSubmit.setOnClickListener {
....
..
dialog!!.dismiss()
onDismissListener?.invoke()
}
}
//dialog them
override fun getTheme(): Int {
return R.style.CustomBottomSheetDialog
}
}
//buttom sheet dialog style
<style name="CustomBottomSheetDialog" parent="@style/ThemeOverlay.MaterialComponents.BottomSheetDialog">
<item name="bottomSheetStyle">@style/CustomBottomSheet</item>
</style>