Android支持库FloatingActionButton - 适用于早期Lollipop设备的填充?

5

这是我的 FAB 定义:

    <android.support.design.widget.FloatingActionButton
        android:id="@+id/button_capture_action_show_options"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="bottom|right"
        android:layout_margin="16dp"
        android:focusable="true"
        android:src="@drawable/c"

似乎在早期版本的设备上呈现时存在一些额外的填充,我似乎无法去除它。

棒棒糖渲染:

lollipop

Pre-lollipop 渲染:

pre-lollipop

任何建议都非常感谢。

你找到答案了吗?请在这里分享,这对于我们遇到相同问题的人会很有帮助。 - Android Noob
暂时没有答案 - 现在停下来了。我想我只能手动调整适用于棒棒糖以下设备的填充...这很糟糕... - vkislicins
2个回答

4
这是由于在Lollipop之前的设备上实现FAB的填充方式造成的。我不知道如何在Lollipop之前的设备上去除它,但是您可以通过在布局定义中设置app:useCompatPadding="true"或使用setUseCompatPadding来使其保持一致(即在Lollipop及以上版本中增加填充)。这种行为是因为阴影绘制的方式。

0

所以我仍然不知道是否有一种“官方”的方法来做到这一点,但最终我做了以下操作:

        if (!isLollipopAndAbove()) {
            RelativeLayout.LayoutParams params = (RelativeLayout.LayoutParams) tab.getLayoutParams();
            params.setMargins(0, 0, 0, 0);
            tab.setLayoutParams(params);
        }

哦,没错,那个需要改变的是 margin 而不是 padding。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接