Android Qにおける Gestural Navigation and Dark Theme2. Android Q で対応が必要なこと
● Gestural Navigation
● Dark Theme
● SYSTEM_ALERT_WINDOW deprecated
● android.preference deprecated
● バックグラウンドでロケーションが必要な場合、追加のPermissionが必要
● Share Sheet
● Bubbles
● etc...
3. Android Q で対応が必要なこと
● Gestural Navigation
● Dark Theme
● SYSTEM_ALERT_WINDOW deprecated
● android.preference deprecated
● バックグラウンドでロケーションが必要な場合、追加のPermissionが必要
● Share Sheet
● Bubble
● etc...
今日はここ
15. UIを “edge-to-edge” にする
● Step2. Navigation Barの後ろにも描画する(強く推奨)
a. 古いOSバージョンの場合はNavigation Barを半透明にすること
b. ScrollViewとかは一番下に「Navigation Barの分の余白」を追加する必要
がある
c. Bottom SheetsはNavigation Barの領域も含めたサイズにする
17. UIを “edge-to-edge” にする
● Step3. Insets
a. System Window Inset(Navigation Barとか)
i. クリック可能なViewは避けて配置する(例:FAB)
ii. 3 Button Navigation Barの場合は、更に上に設置することになる
26. 適用方法
● Force Dark
○ アプリへ自動的にダークモードを適用する
(これだけでイケるかもしれない:Android Qだけで適用される)
● Custom Dark
○ 「ダークモードの時は何色にする」と独自に指定
○ こっちのほうがデザインとして圧倒的に良い(工数はかかる)
27. Force Dark
● 適用方法
○ <item name="android:forceDarkAllowed">true</item>
○ DayNight Themeを使う(Material Componentでもいいです)
<style name="AppTheme" parent="Theme.AppCompat.DayNight">
<style name="AppTheme" parent="Theme.MaterialComponents.DayNight">
28. Custom Dark
● Dark Modeのときに使う -nightリソースも作ることができる
○ 通常:values/themes.xml
○ Dark Mode:values-night/themes.xml
33. まとめ
● Gestural Navigation
○ アプリは画面全体に表示
○ 左右はあける。ただしDrawerLayoutはAndroidXでいい感じにしてくれる
○ どうしても左右にモノを置きたい場合は
View.setSystemGestureExclusionRects(listOf(Rect(a,a,a,a))を使う
● Dark Theme
○ Force Darkで意外となんとかなる
けどなんとかならない所もあるのでThemeでちゃんとやろう
○ アプリでテーマを選べるようにすべき
○ 画像もダークテーマ対応が必要
○ 「対応しないという選択肢」はない