提问人:EkorrTi 提问时间:11/16/2023 最后编辑:EkorrTi 更新时间:11/20/2023 访问量:36
BottomSheetDialog 填充背景而不是使其变暗
BottomSheetDialog fills the background instead of dimming it
问:
如您所见,对话框顶部的部分完全是白色的,并且没有像默认情况下那样变暗
我尝试弄乱样式,使windowBackground和Background透明,也可以以编程方式进行。我尝试在一个新的干净项目中制作它,它无需任何修改即可正常工作,据我所知,它应该是默认行为,并且不是模拟器/设备问题,因为它适用于新项目。代码如下
itemNotification.setOnClickListener {
notificationsBottomSheetDialog.show()
}
notificationsBottomSheetBinding = FragmentNotificationsBottomSheetBinding.inflate(layoutInflater)
notificationsBottomSheetDialog = BottomSheetDialog(requireContext(), style.CustomBottomSheetDialog)
notificationsBottomSheetDialog.setCanceledOnTouchOutside(false)
notificationsBottomSheetDialog.setContentView(notificationsBottomSheetBinding.root)
底页布局 .xml
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/bSheet"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingHorizontal="@dimen/core_padding_16"
android:paddingTop="@dimen/core_vertical_margin_16"
android:paddingBottom="@dimen/core_vertical_margin">
<other stuff but not empty>
所有款式
CustomBottomSheetDialog:
parent = ThemeOverlay.MaterialComponents.BottomSheetDialog
bottomSheetStyle = @style/CustomBottomSheet => @style/CustomBottomSheet
CustomBottomSheet:
parent = Widget.MaterialComponents.BottomSheet
shapeAppearanceOverlay = @style/CustomShapeAppearanceBottomSheetDialog
CustomShapeAppearanceBottomSheetDialog:
cornerFamily = rounded
cornerSizeTopRight = 16dp
cornerSizeTopLeft = 16dp
cornerSizeBottomRight = 0dp
cornerSizeBottomLeft = 0dp
android:windowSoftInputMode = adjustResize
即使在新应用程序中,它也没有没有样式的顶部圆角,在没有样式的情况下初始化它仍然具有相同的白色背景
如果这有所作为,则从片段调用该对话框
答:
0赞
Anirudh Goud
11/17/2023
#1
你可以尝试在on中设置以这种方式创建样式
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setStyle(DialogFragment.STYLE_NORMAL,R.style.SaveBottomSheetDialogStyle) }
然后在styles.xml
<style name="SaveBottomSheetDialogStyle" parent="Theme.Design.Light.BottomSheetDialog">
<item name="bottomSheetStyle">@style/ModalStyle.Transparent</item>
<item name="colorAccent">@color/red</item>
</style>
XML 可以根据需要将 background.xml 文件添加到视图中
评论
0赞
EkorrTi
11/20/2023
这需要我制作一个 BSFragmentDialog,对吗?在这里,我使用一个简单的BSDialog
0赞
C.F.G
11/18/2023
#2
尝试添加以下内容:
app:layout_behavior="com.google.android.material.bottomsheet.BottomSheetBehavior"
添加到您的 Bottomsheet 根布局。
评论
0赞
EkorrTi
11/20/2023
这无济于事
0赞
C.F.G
11/20/2023
尝试通过添加来更改背面颜色并查看结果。android:background="@color/red"
0赞
EkorrTi
11/20/2023
我澄清了样式,即使颜色没有改变,这仍然无济于事
评论
CustomBottomSheetDialog
CustomBottomSheet: