android 仅在API 19上在FloatingActionButton周围有额外边距(间距)

zengzsys  于 2023-02-27  发布在  Android
关注(0)|答案(4)|浏览(170)

我发现FloatingActionButton**周围有多余的边距或间距,但仅限于API19。

    • API19上的屏幕截图:**

每隔一个版本的边距**正确,**见以下屏幕截图:

在两种情况下,**显示布局边界的开发者选项都是打开的。**您可以清楚地看到,在API 19中,FAB周围有一个额外的空间。

    • 可扩展标记语言:**
<RelativeLayout
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:orientation="vertical">

                        <android.support.design.widget.FloatingActionButton
                            android:id="@+id/path_btn"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:layout_marginLeft="12dp"
                            android:layout_marginRight="12dp"
                            android:layout_marginTop="12dp"
                            android:background="@null"
                            app:backgroundTint="@color/blue_light"
                            app:srcCompat="@drawable/ic_line" />

                        <android.support.design.widget.FloatingActionButton
                            android:id="@+id/stream_toggle_btn"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:layout_below="@+id/path_btn"
                            android:layout_marginBottom="12dp"
                            android:layout_marginLeft="12dp"
                            android:layout_marginTop="12dp"
                            android:background="@null"
                            app:srcCompat="@drawable/ic_stream_video_white" />
                    </RelativeLayout>

请注意,XML中的边距只会在屏幕截图中添加紫色区域,如果我删除了边距,多余的间距不会消失。
如果可以的话请帮忙。
谢谢。

    • 英、日、时:**

添加

app:useCompatPadding="true"

到FABS也没用,间距还在。

sg24os4d

sg24os4d1#

您可以 * programmatically * 从 * floatingActionButton * 中删除 * margin *,如。这是一个已知问题,原因是额外的边距。

if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) {
    RelativeLayout.LayoutParams params = (RelativeLayout.LayoutParams) stream_toggle_btn.getLayoutParams();
    params.setMargins(0, 0, 0, 0); 
    stream_toggle_btn.setLayoutParams(params);

    RelativeLayout.LayoutParams params = (RelativeLayout.LayoutParams) path_btn.getLayoutParams();
    params.setMargins(0, 0, 0, 0); 
    path_btn.setLayoutParams(params);
}
    • 编辑**

尝试在 * FloatingActionButton * xml中使用此属性。

app:elevation="0dp"
app:pressedTranslationZ="0dp"

喜欢

<android.support.design.widget.FloatingActionButton
    android:id="@+id/path_btn"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginLeft="12dp"
    android:layout_marginRight="12dp"
    android:layout_marginTop="12dp"
    android:background="@null"
    app:backgroundTint="@color/blue_light"
    app:srcCompat="@drawable/ic_line"
    app:elevation="0dp"
    app:pressedTranslationZ="0dp"/>
dfty9e19

dfty9e192#

这是因为在前Lollipop设备上的FAB中实现了特殊填充。
您可以使用

app:useCompatPadding="true"

以覆盖此行为。
boolean:如果FloatingActionButton在Lollipop及之后的平台上添加内部填充,则为true,以确保所有平台上的维度一致。

nwo49xxi

nwo49xxi3#

如果你想让所有的android版本都有相同的padding,请为fab设置app:useCompatPadding="true"

yqkkidmi

yqkkidmi4#

对于那些使用材料浮动的操作按钮

app:fabCustomSize="@dimen/your_size"

为了去掉FAB周围的额外填充,你可以覆盖来自材料库的尺寸。2只要把这一行放到你的dimension.xml中

<dimen name="mtrl_fab_min_touch_target" tools:override="true">@dimen/your_size</dimen>


之前


之后

相关问题