DialogFragmentの背景色を透明 or 指定する
やりたい事
マテリアルデザイン化したDialogFragmentの背景のグレー(スクリム)を透明 or 色を指定したい
スクリムとは何か?はMaterial Designガイドラインで説明されている
https://material.io/components/dialogs#anatomy
完成形
実装コード
やり方は style.xml or コードの2通りがある。
style パターン
<!-- https://material.io/components/dialogs/android#dialogs -->
<style name="TransportDialog" parent="ThemeOverlay.MaterialComponents.MaterialAlertDialog">
<!-- 透明にする -->
<item name="android:backgroundDimEnabled">false</item>
<!-- 色を調整する -->
<item name="backgroundDimAmount">10f</item>
</style>
このstyleをDialogFragmentにセットする
class TransportDialogFragment : DialogFragment(R.layout.transparent_dialog_fragment) {
override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
// スタイルをセット
setStyle(STYLE_NORMAL, R.style.TransportDialog)
return super.onCreateDialog(savedInstanceState)
}
これで色が変更できた。
コード パターン
class TransportDialogFragment : DialogFragment(R.layout.transparent_dialog_fragment) {
override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
return super.onCreateDialog(savedInstanceState).apply {
// Dialog背景色を指定
window?.setDimAmount(0f) // 0だと透明になるので適宜調整する
}
}
}
これでも色が変更できる。
全体コード
GitHubにUPしておいた
参考リンク
material-components-android/getting-started.md at master
https://github.com/material-components/material-components-android/blob/master/docs/getting-started.md
Dialogs - Material Design
https://material.io/components/dialogs
Author And Source
この問題について(DialogFragmentの背景色を透明 or 指定する), 我々は、より多くの情報をここで見つけました https://qiita.com/ikemura23/items/658c7fb4804b287d1e6b著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .