如何在全屏适配器上打开底部对话框工作表只要我单击它就可以打开半屏视图,然后滚动到全屏.But这是mode.But类中的另一项功能。
var flashAlertPopUp = FareDetailBottomSheet(data.fare_details)
flashAlertPopUp.show(childFragmentManager, "")
发布于 2020-07-27 10:57:17
重写子BottomSheetDialogFragment
中的setupDialog()
,将其设置为按屏幕高度放大,如下所示:
override fun setupDialog(dialog: Dialog, style: Int) {
super.setupDialog(dialog, style)
val parentView = rootView.parent as View
val params = parentView.layoutParams as CoordinatorLayout.LayoutParams
val behavior = params.behavior
if (behavior != null && behavior is BottomSheetBehavior<*>) {
behavior.state = BottomSheetBehavior.STATE_EXPANDED
behavior.peekHeight = requireContext().screenSize.y
}
}
val Context.screenSize: Point
get() = Point().also {
(getSystemService(Context.WINDOW_SERVICE) as? WindowManager)?.defaultDisplay?.getSize(it)
}
在Java代码中:
public class FareDetailBottomSheet extends BottomSheetDialogFragment {
private View rootView;
@SuppressLint("RestrictedApi")
@Override
public void setupDialog(@NonNull Dialog dialog, int style) {
super.setupDialog(dialog, style);
// layoutResId: your layout resource id
rootView = View.inflate(requireContext(), layoutResId, null);
dialog.setContentView(rootView);
onInitViews();
View parentView = (View) rootView.getParent();
CoordinatorLayout.LayoutParams params = (CoordinatorLayout.LayoutParams) parentView.getLayoutParams();
CoordinatorLayout.Behavior behavior = params.getBehavior();
if (behavior instanceof BottomSheetBehavior) {
((BottomSheetBehavior) behavior).setState(BottomSheetBehavior.STATE_EXPANDED);
((BottomSheetBehavior) behavior).setPeekHeight(getScreenSize().y);
}
}
private void onInitViews() {
// do your initialization here...
// for example:
// TextView textView = rootView.findViewById(R.id.textView);
}
private Point getScreenSize() {
Point point = new Point();
WindowManager wm = (WindowManager) requireContext().getSystemService(Context.WINDOW_SERVICE);
if (wm.getDefaultDisplay() != null) {
wm.getDefaultDisplay().getSize(point);
}
return point;
}
}
https://stackoverflow.com/questions/63113210
复制相似问题