Material DesignのAndroidドキュメントを参照すると、ボタンの「タッチターゲット」を高さ48dpに設定するように誘導されていることがよくありますhttps://www.google.com/design/spec/components/buttons.html#buttons-style)。 これは、すべてのButton要素のデフォルト値ですか、それとも明示的に設定する必要がありますか?Android Material Designの「Touch Target Size」とは何か
答えて
デフォルトのマテリアルボタンが問題ない場合は、そのまま使用してください。ほとんどのものは大丈夫です。このボタンは、少なくとも48dp長身になることを意味し、minHeightの属性が48dpに設定されて見ることができるように
<!-- Bordered ink button -->
<style name="Widget.Material.Button">
<item name="background">@drawable/btn_default_material</item>
<item name="textAppearance">?attr/textAppearanceButton</item>
<item name="minHeight">48dip</item>
<item name="minWidth">88dip</item>
<item name="stateListAnimator">@anim/button_state_list_anim_material</item>
<item name="focusable">true</item>
<item name="clickable">true</item>
<item name="gravity">center_vertical|center_horizontal</item>
</style>
:Buttonの材料テーマは以下のように定義されます。悪い点は、Buttonの背景にはインセットがあることです。つまり、ボタンの周りに透明なピクセルを置くことによって、追加のタッチ領域が実現されます。これは、次のSOポストのように、適切なレイアウトに本当にハードボタンを作る:
How to align Material buttons with other UI elements
このようなウィジェットのデザインは実際にレイアウト建物のオプションを制限します。このガイドラインでは、ウィジェットに影響を及ぼす外部の追加タッチ領域としてのタッチターゲットについて説明しています。それは次のように行われるべきである:
- タッチターゲットを変更したり、タッチを変更するにはgetHitRectを上書きする
- 使用setTouchDelegateを36dpする2DP半径の丸い矩形形状
- セットminHeightの持つデフォルトの背景を上書きターゲット
参照:
https://developer.android.com/reference/android/view/TouchDelegate.html
https://developer.android.com/reference/android/view/View.html#getHitRect(android.graphics.Rect)
マテリアルデザインはデザイン仕様であり、そのように、「どのように」について多くのことを語り、「方法」についてはあまり言及していません。タッチ対象のサイズは、ウィジェットが平均的な人の指によって容易に対話されるためには、長年にわたり発見されたものに基づいています。 Google(AppCompatテーマなど)で定義されたテーマやスタイルに固執すると、うまくいくはずです。完全にカスタムのテーマを使用している場合(個人的にはそうしないことをお勧めします)、minWidthおよび/またはminHeightの48dpでウィジェットのスタイルを設定する必要があります。
- 1. Material Design LiteとAngular Material Designの違いは何ですか?
- 2. Material Design Liteメニューダイナミックリピート
- 3. Material Design Lite Carousel
- 4. HTMLとMaterial Design Liteのmdlとdiv要素の違いは何ですか?
- 5. Material Design Lite 2.0へのアップグレード
- 6. kivyMD(kivy material design)のインストールエラー
- 7. Material Design Liteフォントの問題
- 8. Material Designの実装CrossFadeDrawer
- 9. Material Design Liteのフォームボタンは何も送信しません
- 10. Google chart AreaChart and material Design
- 11. target = "_ blank"と "target = blank"の違いは何ですか?
- 12. Androidで視差効果が機能しないMaterial Design
- 13. Material Design Lite - Navヘッダーの検索バー
- 14. Material Design Liteプログラムによるフローティングラベルのトリガー
- 15. Material design datatableのチェックボックスをカスタマイズする
- 16. pymongoのCursor.batch_size(size)に 'size'とは何ですか?
- 17. Angular2ルータとMaterial Design Liteとのやりとり
- 18. Material Design Lite Googleサポートウェブページに似たレイアウト
- 19. Material Design XAMLオーバーライドスタイルが機能しない
- 20. Material Design Liteのアニメーションデモはどこですか?
- 21. node_modulesのAngular 2 Material Designスタイルはどこにありますか?
- 22. AngularJs MaterialのdefaultIconSet()とは何ですか?
- 23. material-uiのLeftNavとは何ですか?
- 24. エラーメッセージの確認と表示方法 - Angular2 Material Design?
- 25. Material Design Liteのチェックボックスはリストにはありません
- 26. Design Material Design Lite Google Keepのように見えるカード付きグリッド
- 27. Material DesignのActionBarの下にプログレスバーを表示するには?
- 28. <button class = "target">でclass = "target"とは何か?></button>のように?
- 29. Androidでナビゲーション・ドロワーを使用してスクロール・アクティビティーを取得する方法(Material Design)
- 30. Bootrap jsとMaterial Design Lite jsは互換性がありませんか?
ありがとうございました。つまり、minHeightを48dipに設定すると、「タッチターゲットサイズ」の要件が達成されるか、インポートされたスタイル「Widget.Material.Button」によって作成されます。これは私が好きなことです。カスタムボタンを、いわゆる「タッチターゲットサイズ」の素材ボタンと似たものにするガイドラインがないのは不思議です。 –
minHeightを48dpに設定すると、タッチ矩形と描画矩形の両方が48dpに設定され、それが「Widget.Material.Button」と同じです。シェイプインセットを使用して、そのサイズから描画矩形を切り取ります。私はむしろminHeightを36dpに設定し、私が言及した2つの方法の1つを使用してタッチ矩形を拡張します。 – Zielony
ドロアブル "@ drawable/btn_default_material"はどこにありますか? –