๋ชจ๋ฌ(modal) UI๋ ๋ฌด์์ผ๊น?
๋ชจ๋ฌ์ ์ฌ์ฉ์์ ์ด๋ชฉ์ ๋๊ธฐ ์ํด ์ฌ์ฉํ๋ ํ๋ฉด ์ ํ ๊ธฐ๋ฒ์ ์๋ฏธํ๋ค.
ํ์
, ๋ฐํ
์ํธ, ์ค๋ต๋ฐ ๋ฑ ์ฌ๋ฌ ๊ฐ์ง๊ฐ ์กด์ฌํ๋ค.
PC์ ๋นํด ํ์ฉ๊ฐ๋ฅํ ๋ฉด์ ์ด ์ ๊ธฐ ๋๋ฌธ์ ์ฌ์ฉ์์ ์ด๋ชฉ์ ๋๊ณ ํ๋์ด ํ์ํ ๊ฒฝ์ฐ
์์ ์๋ ๋ค์ด์ผ๋ก๊ทธ ์ฌ์ฉํ์ ๋ ํ ๋๋ฆฌ๊ฐ ๋ณด์ฌ์ background๊ฐ ์ง์ ์ด ์๋๊ธธ๋ ์ฝ๋์์ ๋ฐฐ๊ฒฝ์์ ํฌ๋ช ์ผ๋ก ์ง์ ํด์ ๋ฐฐ๊ฒฝ์์ ์์ด๋๋ฐ ์ด๋ฒ์ ๋ฐํ ์ํธ ๋ค์ด์ผ๋ก๊ทธ๋ฅผ ์ฌ์ฉํ๋ ค๊ณ ํ๋๋ฐ ๋๊ฐ์ ๋ฌธ์ ๊ฐ ์๊ฒผ๋ค.
์์ ์ ๋ฐฐ๊ฒฝ์ ์์ ๋ ๊ฑธ ํด๊ฒฐํ ์ฝ๋
alertDialog?.window?.setBackgroundDrawable(ColorDrawable(Color.TRANSPARENT))
์ด๋ฒ์๋ xml์์ backgroundTint์ ํฌ๋ช ์์ ์ง์ ํด์ฃผ๊ณ , ์ฝ๋์์ ๋ฐฐ๊ฒฝ์์ ํฌ๋ช ์์ผ๋ก ํด์ค๋ ๋ท๋ฐฐ๊ฒฝ์ด ๋ณด์ฌ์ ๊ณ์ ํ ๋๋ฆฌ๊ฐ ๊ฐ์ ธ์ ๋ณด์๋ค.
<style.xml>์ ์๋์ ์ฝ๋๋ฅผ ๋ฃ๊ณ
<style name="TransparentBottomSheetDialogFragment" parent="Theme.Design.BottomSheetDialog">
<item name="android:windowIsFloating">true</item>
<item name="android:backgroundDimEnabled">true</item> // Scrim์ด ์๋ Modal
<item name="android:colorBackground">@android:color/transparent</item>
</style>
BottomSheetDialogFragment ์ฝ๋์ OnCreate ์์ setStyle ํจ์๋ฅผ ํธ์ถํด์ฃผ๋ฉด ๋๋ค.
class RecordBottomSheetDialog : BottomSheetDialogFragment() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setStyle(STYLE_NORMAL, R.style.TransparentBottomSheetDialogFragment)
}
setStyle : ํ๋๊ทธ๋จผํธ์ ์คํ์ผ๊ณผ ํ
๋ง๋ฅผ ์ค์ .
ํ๋๊ทธ๋จผํธ๊ฐ ์์ฑ๋ ์งํ, ์ฆ onCreate ๋ฉ์๋ ๋ด์์ ํธ์ถํด์ผ ํจ
- ์ฒซ ๋ฒ์งธ ๋งค๊ฐ๋ณ์
STYLE_NORMAL์ ํ์ค ๋ฐํ ์ํธ ์คํ์ผ์ ์๋ฏธ.
๋ค๋ฅธ ์ต์ ์ผ๋ก๋ STYLE_NO_TITLE, STYLE_NO_FRAME, STYLE_NO_INPUT ๋ฑ์ด ์์- ๋ ๋ฒ์งธ ๋งค๊ฐ๋ณ์
theme์ ๋ค์ด์ผ๋ก๊ทธ์ ์ ์ฉํ ์คํ์ผ ๋ฆฌ์์ค์ ID
์ด ์คํ์ผ์ ๋ฐํ ์ํธ ๋ค์ด์ผ๋ก๊ทธ์ ๋ฐฐ๊ฒฝ์ ํฌ๋ช ํ๊ฒ ๋ง๋ค๊ฑฐ๋ ๋ค๋ฅธ ์๊ฐ์ ์์ฑ์ ๋ณ๊ฒฝํ๋ ๋ฐ ์ฌ์ฉ
์์ง ๋ท๋ฐฐ๊ฒฝ์ด ๋จ์์๋ค
์์ง ๋ท๋ฐฐ๊ฒฝ์ด ๋จ์์๋ค2
์์ง ๋ท๋ฐฐ๊ฒฝ์ด ๋จ์์๋ค3
์์ง ๋ท๋ฐฐ๊ฒฝ์ด ๋จ์์๋ค4
๋๋์ด ์์ด์ก๋ค.!
๊ทผ๋ฐ ๊ธ์์ ์์ ๋ฃ์ง ์์ผ๋ฉด ๊ธ์๊ฐ ์๋ณด์ด๋ ์ค๋ฅ๊ฐ ๋ ๋ฐ์ํจ
์ ์์ ๋ฃ์ด์ค์ผ ๊ธ์๊ฐ ๋ณด์ด๋์ง๋ ์์๋ณด์
windowBackground ์์ black์ผ๋ก ํ์ ๋