浮动操作按钮没有填充,尽管 app:useCompatPadding="true"
Floating Action Button has no padding despite app:useCompatPadding="true"
对于我的一个活动中的布局,我在右下角有一个浮动操作按钮。但出于某种原因,尽管设置了 app:useCompatPadding="true"
,但按钮的边距没有填充。
这里是 XML 代码:
<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.design.widget.FloatingActionButton
android:id="@+id/add_class_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="bottom|end"
android:src="@drawable/ic_add_white_24dp"
app:useCompatPadding="true" />
<ListView
android:id="@+id/android:list"
android:layout_width="match_parent"
android:layout_height="wrap_content"></ListView>
</android.support.design.widget.CoordinatorLayout>
这是布局的图片:
希望能提供一些帮助,谢谢!
原因是你没有给它提供保证金。这应该有效
<android.support.design.widget.FloatingActionButton
android:contentDescription="@string/menu_compose"
android:id="@+id/add_class_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="bottom|right|end"
android:layout_marginBottom="16dp"
android:layout_marginRight="16dp"
android:layout_marginEnd="16dp"
app:useCompatPadding="true"
android:src="@drawable/ic_add_white_24dp"
app:fabSize="normal"/>
试试这个
<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ListView
android:id="@+id/android:list"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<android.support.design.widget.FloatingActionButton
android:layout_margin="16dp"
android:id="@+id/add_class_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="bottom|end"
app:useCompatPadding="true" />
</android.support.design.widget.CoordinatorLayout>
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"
app:useCompatPadding="true"
...
/>
正如其他人所指出的,在 API <20 中,按钮呈现自己的阴影,这增加了视图的整体逻辑宽度,而在 API >=20 中,它使用不影响视图宽度的新高程参数。
我希望这对你有用。
按以下方式使用
<android.support.design.widget.FloatingActionButton
android:id="@+id/fabImage"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="right|bottom"
android:layout_margin="16dp"
android:visibility="visible"
app:backgroundTint="@color/colorAccent"
app:borderWidth="0dp"
app:elevation="0dp"
app:fabSize="normal"
app:pressedTranslationZ="12dp"
app:rippleColor="#dadada"
app:srcCompat="@mipmap/ic_image" />
对于我的一个活动中的布局,我在右下角有一个浮动操作按钮。但出于某种原因,尽管设置了 app:useCompatPadding="true"
,但按钮的边距没有填充。
这里是 XML 代码:
<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.design.widget.FloatingActionButton
android:id="@+id/add_class_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="bottom|end"
android:src="@drawable/ic_add_white_24dp"
app:useCompatPadding="true" />
<ListView
android:id="@+id/android:list"
android:layout_width="match_parent"
android:layout_height="wrap_content"></ListView>
</android.support.design.widget.CoordinatorLayout>
这是布局的图片:
希望能提供一些帮助,谢谢!
原因是你没有给它提供保证金。这应该有效
<android.support.design.widget.FloatingActionButton
android:contentDescription="@string/menu_compose"
android:id="@+id/add_class_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="bottom|right|end"
android:layout_marginBottom="16dp"
android:layout_marginRight="16dp"
android:layout_marginEnd="16dp"
app:useCompatPadding="true"
android:src="@drawable/ic_add_white_24dp"
app:fabSize="normal"/>
试试这个
<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ListView
android:id="@+id/android:list"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<android.support.design.widget.FloatingActionButton
android:layout_margin="16dp"
android:id="@+id/add_class_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="bottom|end"
app:useCompatPadding="true" />
</android.support.design.widget.CoordinatorLayout>
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"
app:useCompatPadding="true"
...
/>
正如其他人所指出的,在 API <20 中,按钮呈现自己的阴影,这增加了视图的整体逻辑宽度,而在 API >=20 中,它使用不影响视图宽度的新高程参数。
我希望这对你有用。
按以下方式使用
<android.support.design.widget.FloatingActionButton
android:id="@+id/fabImage"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="right|bottom"
android:layout_margin="16dp"
android:visibility="visible"
app:backgroundTint="@color/colorAccent"
app:borderWidth="0dp"
app:elevation="0dp"
app:fabSize="normal"
app:pressedTranslationZ="12dp"
app:rippleColor="#dadada"
app:srcCompat="@mipmap/ic_image" />