【发布时间】:2018-05-13 05:31:21
【问题描述】:
我正在使用非常幼稚的代码来显示底部工作表对话框片段:
class LogoutBottomSheetFragment : BottomSheetDialogFragment() {
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
val view = inflater.inflate(R.layout.view_image_source_chooser, container, false)
return view
}
}
这就是我调用这个对话框的方式:
LogoutBottomSheetFragment().show(supportFragmentManager, "logout")
但我得到了下图所示的可怕结果。 如何使导航栏保持白色(返回/主页软件按钮所在的底部栏)?
我正在使用的应用主题:
<!-- Base application theme. -->
<style name="BaseAppTheme" parent="Theme.AppCompat.Light.NoActionBar">
<!-- Customize your theme here. -->
</style
<style name="AppTheme" parent="BaseAppTheme">
<item name="android:windowNoTitle">true</item>
<item name="windowActionBar">false</item>
<!-- Main theme colors -->
<!-- your app branding color for the app bar -->
<item name="android:colorPrimary">@color/colorPrimary</item>
<!-- darker variant for the status bar and contextual app bars -->
<item name="android:colorPrimaryDark">@android:color/white</item>
<!-- theme UI controls like checkboxes and text fields -->
<item name="android:colorAccent">@color/charcoal_grey</item>
<item name="colorControlNormal">@color/charcoal_grey</item>
<item name="colorControlActivated">@color/charcoal_grey</item>
<item name="colorControlHighlight">@color/charcoal_grey</item>
<item name="android:textColorPrimary">@color/charcoal_grey</item>
<item name="android:textColor">@color/charcoal_grey</item>
<item name="android:windowBackground">@color/white</item>
</style>
我也尝试过覆盖 setupDialog 而不是 onCreateView,但仍然发生:
@SuppressLint("RestrictedApi")
override fun setupDialog(dialog: Dialog, style: Int) {
super.setupDialog(dialog, style)
val view = View.inflate(context, R.layout. view_image_source_chooser,null)
dialog.setContentView(view)
}
【问题讨论】:
-
您确定它已附加到您的
CoordinatorLayout吗? -
如何显示片段?
-
@JJ86 是的,活动根是协调器布局,但我怀疑它是否对这个问题有任何影响,因为这是一个对话框片段。
-
@KalaBalik 更新了我的问题
-
可以分享
styles.xml,具体是Activity的主题吗?
标签: android android-layout android-view navigationbar bottom-sheet