尽管app:useCompatPadding =“true”,浮动操作按钮没有填充

时间:2018-06-11 04:41:27

标签: android floating-action-button

对于我的一个活动中的布局,我在右下方有一个浮动操作按钮。但由于某些原因,尽管设置了export class FooComponent implements OnInit{ constructor (private _services: Services, private cdRef:ChangeDetectorRef) { this.cdRef.detectChanges(); } ,但按钮的边距上没有填充。

以下是XML代码:

app:useCompatPadding="true"

这是布局的图像: enter image description here

一些帮助会被推荐,谢谢!

4 个答案:

答案 0 :(得分:1)

试试这个

<?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>

答案 1 :(得分:1)

我希望这对你有用。

使用如下所示

<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" />

答案 2 :(得分:0)

原因是你没有提供保证金。这应该工作

 <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"/>

答案 3 :(得分:0)

refer this

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&lt; 20中,按钮呈现自己的阴影,这会增加视图的整体逻辑宽度,而在API&gt; = 20时,它会使用新的Elevation参数到视图宽度。