Android 上低于 5.0 的 FloatingActionButton 布局边距不正确
Incorrect FloatingActionButton layout margins on Android that's below 5.0
不明白为什么我的浮动操作按钮的边距是 32dp 而不是 16dp?
<android.support.design.widget.FloatingActionButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/fab"
android:src="@drawable/ic_add_24"
android:layout_gravity="bottom|end"
android:layout_marginRight="16dp"
android:layout_marginEnd="16dp"
android:layout_marginBottom="16dp"/>
在 Android 5.0(模拟器)上一切正确,但在 Android 4.3(真实设备)上边距太大。尽管根布局没有填充或边距。
P.S。来自 Google 设计库的 FloatActionButton。
显然实现此目的的唯一方法是使用 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>
然后在values-v21/styles.xml下使用:
<style name="floating_action_button">
<item name="android:layout_margin">16dp</item>
最后,将样式应用于您的 FloatingActionButton:
<android.support.design.widget.FloatingActionButton
...
style="@style/floating_action_button"
...
/>
正如 Zielony 所指出的,在 API <20 中,按钮呈现自己的阴影,这增加了视图的整体逻辑宽度,而在 API >=20 中,它使用不影响视图宽度的新高程参数。
不明白为什么我的浮动操作按钮的边距是 32dp 而不是 16dp?
<android.support.design.widget.FloatingActionButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/fab"
android:src="@drawable/ic_add_24"
android:layout_gravity="bottom|end"
android:layout_marginRight="16dp"
android:layout_marginEnd="16dp"
android:layout_marginBottom="16dp"/>
在 Android 5.0(模拟器)上一切正确,但在 Android 4.3(真实设备)上边距太大。尽管根布局没有填充或边距。
P.S。来自 Google 设计库的 FloatActionButton。
显然实现此目的的唯一方法是使用 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>
然后在values-v21/styles.xml下使用:
<style name="floating_action_button">
<item name="android:layout_margin">16dp</item>
最后,将样式应用于您的 FloatingActionButton:
<android.support.design.widget.FloatingActionButton
...
style="@style/floating_action_button"
...
/>
正如 Zielony 所指出的,在 API <20 中,按钮呈现自己的阴影,这增加了视图的整体逻辑宽度,而在 API >=20 中,它使用不影响视图宽度的新高程参数。