在协调器布局中具有锚点的FAB在android pre-lollipop中具有额外的余量

Mis*_*rdi 8 android android-layout floating-action-button android-coordinatorlayout

我有一个CoordinatroLayoutFloatingActionButton.这是我的代码:

<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:layout_below="@+id/toolbar_layout"
        android:layout_above="@+id/actionbar">

        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:orientation="vertical">

            <android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android"
                android:id="@+id/toolbar"
                android:layout_width="match_parent"
                android:layout_height="120dp"
                android:minHeight="?android:attr/actionBarSize"
                android:background="@color/toolbar_color" />


            <ScrollView
                android:layout_width="match_parent"
                android:layout_height="wrap_content"

                >

            </ScrollView>


        </LinearLayout>

        <android.support.design.widget.FloatingActionButton
            android:id="@+id/fab"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"

            android:clickable="true"
            app:fabSize="mini"
            android:src="@mipmap/ic_action_edit"
            app:layout_anchor="@id/toolbar"
            app:layout_anchorGravity="bottom|right|end"
            app:backgroundTint="@color/toolbar_color"            />
        </android.support.design.widget.CoordinatorLayout>
Run Code Online (Sandbox Code Playgroud)

但它在棒棒糖和棒棒糖前装置中看起来有所不同.

棒糖:

在此输入图像描述

预棒棒糖: 在此输入图像描述

其实我没有添加任何保证金.但FAB在棒棒糖前设备方面有优势.

我也在cheessesquare样本中看到过这个问题.它也显示出不同的边距.问题是什么?

Sar*_*ran 17

我不认为你想要没有利润.如果我理解正确,你已经这样做了,看看在不同版本的android中发生了什么.

您可以使用app:useCompatPadding="true"和删除自定义边距,以在不同版本的android中保持相同的边距

android工作室代码

概念证明

设计视图


Mis*_*rdi 5

根据这个链接,它似乎是android设计库中的一个bug.它说:

在API <20中,按钮呈现自己的阴影,这会增加视图的整体逻辑宽度,而在API> = 20中,它使用新的Elevation参数,这些参数对视图宽度没有贡献.

所以我必须为保证金提供两个资源文件:

RES /值:

<dimen name= "fab_margin_right">0dp</dimen>
Run Code Online (Sandbox Code Playgroud)

在res/values-v21中:

<dimen name = "fab_margin_right">8dp</dimen>
Run Code Online (Sandbox Code Playgroud)