【问题标题】:Floating Action Button has no padding despite app:useCompatPadding="true"尽管 app:useCompatPadding="true" 浮动操作按钮没有填充
【发布时间】:2018-11-20 06:49:55
【问题描述】:

对于我的一项活动的布局,我在右下角有一个浮动操作按钮。但是由于某种原因,尽管设置了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 floating-action-button


【解决方案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】:

    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 =20 中,它使用了新的 Elevation 参数,这些参数对视图宽度。

    【讨论】:

    • 对于样式,为什么除了marginRight, 0dp 之外都是?
    • 您可以根据您的要求进行更改...我使用引用链接发布...它的要求是屏幕居中...所以 marginRight, 0dp
    • 在您的条件下边距右下角要求...其他为零
    【解决方案3】:

    试试这个

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

    【讨论】:

      【解决方案4】:

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-11-13
        • 2016-12-10
        • 1970-01-01
        • 1970-01-01
        • 2015-06-25
        • 1970-01-01
        • 1970-01-01
        • 2018-10-18
        相关资源
        最近更新 更多