无法理解为什么我的浮动动作按钮有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(真实设备)上的边距太大。虽然根布局没有填充或边距。
附:来自Google设计库的FloatActionButton。
答案 0 :(得分:1)
显然要实现这一目标的唯一方法是使用特定于API的样式。在普通值/ 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&lt; 20中,按钮呈现自己的阴影,这会增加视图的整体逻辑宽度,而在API&gt; = 20时,它会使用新的Elevation参数到视图宽度。