首页 > 解决方案 > 平板电脑风景中的 BottomSheetDialogFragment

问题描述

可以更改 BottomSheetDialogFragment (材料设计)宽度的宽度吗?在平板电脑横向模式下,宽度为 match_parent。谢谢

标签: androidkotlinbottomsheetdialogfragment

解决方案


底部床单在手机上看起来很棒。但是当把它们放在平板电脑上时,它们会感到被拉长,尤其是在横向模式下。这是由于窥视高度与整个平板电脑宽度之间的高比率。细节很重要,我们希望平板电脑用户和手机用户一样开心。让我们自定义平板电脑的底部宽度。

值-w820dp/dimens.xml

<resources>
  <dimen name="bottom_sheet_width">600dp</dimen>
</resources>

片段文件

public class PopupSettingsFragment extends AppCompatDialogFragment {
  ...

  @Override
  public Dialog onCreateDialog(Bundle savedInstanceState) {
    return new CustomWidthBottomSheetDialog(getActivity(), getTheme());
  }

  static class CustomWidthBottomSheetDialog extends BottomSheetDialog {
    public CustomWidthBottomSheetDialog(@NonNull Context context, @StyleRes int theme) {
      super(context, theme);
    }

    @Override
    protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      int width = getContext().getResources().getDimensionPixelSize(R.dimen.bottom_sheet_width);
      getWindow().setLayout(width > 0 ? width : ViewGroup.LayoutParams.MATCH_PARENT,
        ViewGroup.LayoutParams.MATCH_PARENT);
    }
  }
}

资源


推荐阅读