android - 平板电脑风景中的 BottomSheetDialogFragment
问题描述
可以更改 BottomSheetDialogFragment (材料设计)宽度的宽度吗?在平板电脑横向模式下,宽度为 match_parent。谢谢
解决方案
底部床单在手机上看起来很棒。但是当把它们放在平板电脑上时,它们会感到被拉长,尤其是在横向模式下。这是由于窥视高度与整个平板电脑宽度之间的高比率。细节很重要,我们希望平板电脑用户和手机用户一样开心。让我们自定义平板电脑的底部宽度。
值-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);
}
}
}
推荐阅读
- ios - 如何从消息过滤器扩展中获取数据?
- python - 熊猫 - 自上次交易以来的计数
- css - 避免组件在角度上重叠
- c++ - win 将应用程序 String^ 转换为 int
- python - numpy.random.choice() 无法正常工作
- java - 使用带有未经检查分配的 lambda 的 assertThatThrownBy 时找不到符号
- ssrs-2008 - 在 SSRS 中一起显示矩阵聚合列
- asp.net-core - 使用 ASP.NET Core 中间件在 HTML 文件中注入脚本引用
- perforce - 在 Perforce 中查找并签出特定更改列表的文件
- python - 为 Python 导出 C++ 类