gpt4 book ai didi

android - BottomSheetDialogFragment 暴露高度

转载 作者:行者123 更新时间:2023-11-29 23:31:26 30 4
gpt4 key购买 nike

似乎 BottomSheetDialogFragment 是用 anchor 编码的,如果您的 fragment 布局的高度超过 360dp onShow() 将导致对话框窥视到 360dp 并且您必须手动向上拖动工作表以显示所有布局。

有什么方法可以绕过这种行为,或者我可以使用 fragment 的模态底部对话框的任何其他建议?

你可以检查如下行为

Activity.java

            MyDialog myDialog = new MyDialog();
mtDialog.show(getChildFragmentManager(),"my_dialog_fragment");

MyDialog.java

public class MyDialog extends BottomSheetDialogFragment{
public View onCreate(@NonNull LayoutInflater inflater, @Nullable ViewGroup container,
@Nullable Bundle savedInstanceState){
return inflater.inflate(R.layout.dialog, container, false);
}
}

dialog.xml

<FrameLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="432dp"
android:backgroud="@color/blue"/>

这就是代码。我试过使用 setStyle 并创建 BottomSheetDialog 样式和所有这些排列,但没有。但是将高度设置为 360dp 是它完全扩展的地方,但我需要更多的区域。

最佳答案

OP 在这里回答问题。

public class MyDialogFragment extends BottomSheetDialogFragment {
@Override
public void setupDialog(Dialog dialog, int style) {
View v = LayoutInflater.from(getActivity()).inflate(R.layout.dialog, null);
dialog.setContentView(v);

CoordinatorLayout.LayoutParams params = (CoordinatorLayout.LayoutParams) ((View) v.getParent()).getLayoutParams();
CoordinatorLayout.Behavior behavior = params.getBehavior();
((BottomSheetBehavior) behavior).setState(BottomSheetBehavior.STATE_EXPANDED);
}

以上解决了未扩展到布局中声明的完整高度的问题。可能要添加对行为的检查以确保其不为空。现在只需要添加我的算法,不确定它是需要在 oncreateview 上还是在设置对话框中...我们将看到。

快乐编码:)

关于android - BottomSheetDialogFragment 暴露高度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52600519/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com