[解決済み] Android Design Library - フローティングアクションボタンのパディング/マージン問題
2022-10-11 07:52:33
質問
Google Design Library の新しい FloatingActionButton を使用していますが、パディングとマージンに奇妙な問題が発生しています。この画像 (開発者レイアウト オプションをオンにしたもの) は API 22 のものです。
そして、API17から。
これはXMLです。
<android.support.design.widget.FloatingActionButton
android:id="@+id/fab"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_gravity="bottom|right"
android:layout_marginLeft="16dp"
android:layout_marginRight="20dp"
android:layout_marginTop="-32dp"
android:src="@drawable/ic_action_add"
app:fabSize="normal"
app:elevation="4dp"
app:borderWidth="0dp"
android:layout_below="@+id/header"/>
API 17のFABは、なぜパディングやマージンが大きいのですか?
どのように解決するのですか?
更新(2016年10月)しました。
現在の正しい解答は
app:useCompatPadding="true"
を入れることです。これにより、異なる API バージョン間でパディングの一貫性を保つことができます。しかし、これでもデフォルトのマージンは少しずれているようなので、それらを調整する必要があるかもしれません。しかし、少なくともAPI固有のスタイルがこれ以上必要ないことは確かです。
前回の回答
API固有のスタイルを使用することで、簡単に実現できます。あなたの通常の
values/styles.xml
に、このようなものを入れます。
<style name="floating_action_button">
<item name="android:layout_marginLeft">0dp</item>
<item name="android:layout_marginTop">0dp</item>
<item name="android:layout_marginRight">8dp</item>
<item name="android:layout_marginBottom">0dp</item>
</style>
で、values-v21/styles.xmlの下に、これを使用します。
<style name="floating_action_button">
<item name="android:layout_margin">16dp</item>
</style>
で、そのスタイルをFloatingActionButtonに適用します。
<android.support.design.widget.FloatingActionButton
...
style="@style/floating_action_button"
...
/>
他の人が指摘したように、API <20 では、ボタンはそれ自身の影をレンダリングし、ビューの全体の論理的な幅に追加しますが、API >=20 では、ビュー幅に貢献しない新しい Elevation パラメータを使用します。
関連
-
[解決済み] Android Studioにライブラリプロジェクトを追加する方法を教えてください。
-
[解決済み] Android標準のボタンを色違いに
-
[解決済み] Androidでフローティングアクションボタンの色を変更する
-
[解決済み] ビューのパディングとマージンの違いについて
-
[解決済み】Android Studioです。jarをライブラリとして追加しますか?
-
[解決済み】AndroidのボタンにdrawableLeftをプログラム的に設定するには?
-
[解決済み】2つのウィジェット/レイアウトの間に新しい「フローティング・アクション・ボタン」を追加する方法
-
[解決済み] Android Studioの「未実装メソッドの追加」機能
-
[解決済み] Androidアプリケーションのヒープサイズを大きくするには?
-
[解決済み] google-services.jsonって実際何してるの?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] pxからdp、dpからpxのアンドロイドの計算式
-
[解決済み] RecyclerView.Stateを使って、RecyclerViewのスクロール位置を保存するには?
-
[解決済み] AndroidでラジオボタンにOnClickListenerを設定するには?
-
[解決済み] Androidでマイナスマージンを使用するのは悪いことですか?
-
[解決済み] TextView.setTextSizeの挙動がおかしい - テキストビューのテキストサイズを画面ごとに動的に設定する方法
-
[解決済み] ProjectScopeServices に Factory タイプのサービスはありません。
-
[解決済み] FABアイコンの色を設定する
-
[解決済み] Androidの環境設定。ユーザーが環境設定画面を使用していない場合、デフォルト値を読み込むにはどうすればよいですか?
-
[解決済み] LayoutParamsの高さを密度に依存しないピクセル数でプログラム的に設定する。
-
[解決済み] 実行に失敗しました app:processDebugResources Android Studio