android - 有时,BottomSheetDialogFragment 在屏幕中心打开,如警报对话框
问题描述
我有BottomSheetDialogFragment,它需要在展开状态下打开,并且应该在向下滑动时跳过折叠状态。
问题是,我有时会出现意外行为
为什么我有时会有这种看法?
下面是我的代码,
@Override
public int getTheme() {
if (Build.VERSION.SDK_INT > 21) {
return R.style.BottomSheetDialogTheme;
} else {
return super.getTheme();
}
}
@NonNull
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
BottomSheetDialog dialog = (BottomSheetDialog) super.onCreateDialog(savedInstanceState);
dialog.setOnShowListener((DialogInterface.OnShowListener) dialog1 -> {
BottomSheetDialog d = (BottomSheetDialog) dialog1;
FrameLayout bottomSheet = (FrameLayout) d.findViewById(com.google.android.material.R.id.design_bottom_sheet);
if (bottomSheet != null) {
BottomSheetBehavior.from(bottomSheet).setState(BottomSheetBehavior.STATE_EXPANDED);
BottomSheetBehavior.from(bottomSheet).setSkipCollapsed(true);
BottomSheetBehavior.from(bottomSheet).setFitToContents(true);
BottomSheetBehavior.from(bottomSheet).setPeekHeight(1000);
}
});
return dialog;
}
同样的风格/主题是
<style name="BottomSheetDialogTheme" parent="BaseBottomSheetDialog">
<item name="android:statusBarColor" tools:targetApi="lollipop">@android:color/transparent
</item>
</style>
<!-- set the rounded drawable as background to your bottom sheet -->
<style name="BottomSheet" parent="@style/Widget.Design.BottomSheet.Modal">
<item name="android:background">@drawable/bottomsheet_round_corner_bg</item>
</style>
<style name="BaseBottomSheetDialog" parent="@style/Theme.Design.Light.BottomSheetDialog">
<item name="android:windowIsFloating">false</item>
<item name="bottomSheetStyle">@style/BottomSheet</item>
<item name="android:windowSoftInputMode">adjustResize</item>
</style>
大多数情况下,我实现了这一部分,但不知何故出现了其他屏幕截图行为。
任何解决或遇到此问题的人都可以评论或回答解决方案,谢谢。
解决方案
您可能需要添加window.setGravity(Gravity.BOTTOM)。
推荐阅读
- clojurescript - 在 spacemacs 中评估表达式并显示结果
- html - 我的页脚未与页面底部对齐
- r - 单击按钮 RSelenium 亚马逊翻页
- python - 在 TensorFlow 中输入自定义数据
- reactjs - NotFound 组件未显示在构建脚本中
- django - Django:创建一个具有相同模型的(django-generated)主键值的字段
- css - 谷歌地图(api)从边缘到边缘浏览器
- amazon-web-services - 托管 UI 未在移动设备上返回令牌
- python - PyTorch NotImplementedError 转发
- scala - 编程面试中的 Scala 字符串等式问题