BottomSheetDialogFragment тема со скинами - PullRequest
0 голосов
/ 26 апреля 2019

Как сочетать BottomSheetDialogFragment тему с другими темами?

Мое приложение имеет скины, которые сделаны с использованием тем. BottomSheetDialogFragment должно иметь закругленные углы, и я добиваюсь этого с помощью:

 override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setStyle(BottomSheetDialogFragment.STYLE_NORMAL, R.style.CustomBottomSheetDialogTheme) /* hack to make background transparent */
 }

Затем в styles.xml:

<style name="CustomBottomSheetStyle" parent="Widget.Design.BottomSheet.Modal">
    <item name="android:background">@android:color/transparent</item>
</style>

<style name="CustomBottomSheetDialogTheme" parent="Theme.MaterialComponents.Light.BottomSheetDialog">
    <item name="bottomSheetStyle">@style/CustomBottomSheetStyle</item>
</style>

Но если я простираюсь от Theme.MaterialComponents.Light.BottomSheetDialog, я не получу цветовую схему, которую я определил в теме скина.

Итак, вопрос таков: как определить тему диалога внутри темы оформления?

1 Ответ

0 голосов
/ 29 мая 2019
override fun onCreateDialog(@Nullable savedInstanceState: Bundle?): Dialog 
val dialog = BottomSheetDialog(context!!,R.style.FullScreenBottomSheet)

<style name="FullScreenBottomSheet" 
parent="Theme.MaterialComponents.Light.BottomSheetDialog">
<item name="android:windowFullscreen">false</item>
<item name="android:colorBackgroundCacheHint">@null</item>
<item name="android:windowBackground">@color/transparent</item>
<item name="android:statusBarColor">@color/transparent</item>
</style>
...