首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >BottomSheetDialogFragment暴露高度

BottomSheetDialogFragment暴露高度
EN

Stack Overflow用户
提问于 2018-10-02 00:20:35
回答 1查看 2.3K关注 0票数 2

BottomSheetDialogFragment似乎是用一个锚进行编码的,如果您的片段布局在高度上超过了360dponShow()将导致对话框查看到360dp,并且您必须手动拖动工作表以显示所有布局。

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

您可以按以下方式检查该行为

Activity.java

代码语言:javascript
复制
            MyDialog myDialog = new MyDialog();
            mtDialog.show(getChildFragmentManager(),"my_dialog_fragment");

MyDialog.java

代码语言:javascript
复制
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

代码语言:javascript
复制
<FrameLayout
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="432dp"
    android:backgroud="@color/blue"/>

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

EN

回答 1

Stack Overflow用户

发布于 2018-10-02 01:15:20

在这里回答Q。

代码语言:javascript
复制
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还是在安装对话框中.我们拭目以待。

快乐编码:)

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52600519

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档