棒棒糖前设备中的 Snackbar 高度太大

Posted

技术标签:

【中文标题】棒棒糖前设备中的 Snackbar 高度太大【英文标题】:Snackbar height is too large in pre-lollipop devices 【发布时间】:2017-07-08 06:35:50 【问题描述】:

我有什么

我在我的应用程序中使用 Design Support 库中的 Snackbar。我曾经在我的应用程序中以 API 级别 23 为目标,但在我开始以 API 级别 24 为目标后开始注意到一个奇怪的问题。

问题

该问题仅发生在棒棒糖之前的设备上,例如 Kitkat 和 Jellybean。对于 Lollipop 及以上设备来说非常好。 SnackBar 的高度与其标准尺寸相比太大了(请查看下面的屏幕截图)。

当我使用设计支持库并以 API 23 为目标时

compile 'com.android.support:design:23.4.0'

一切正常。但是当我开始瞄准 API 24 并使用时,

compile 'com.android.support:design:24.2.1'

问题开始出现。

其他人有同样的问题吗?我可能做错了什么吗?如何在不降低目标SDK的情况下修复?

【问题讨论】:

我自己没有遇到这个问题,但这可能是一个替代方案:***.com/a/33441214/3507492 我会研究替代方案。那么,您是否以 API 24 为目标并使用设计支持库 24.2.1,但在 Kitkat 设备中没有看到此问题? 使用设计支持库 25.1.1 定位 API 25,没有遇到此类问题。 您是否尝试过检查 Android Studio 模拟器 4.4 版?我目前在 Kitkat 上没有真正的设备,所以必须检查模拟器。会不会是模拟器特有的错误? 你解决了这个问题吗? 【参考方案1】:

这个可以解决

Snackbar snackbar = Snackbar.make(getRoot(), text, duration);
if (Build.VERSION.SDK_INT == Build.VERSION_CODES.KITKAT) 
    snackbar.getView().setFitsSystemWindows(false);

snackbar.show();

【讨论】:

以上是关于棒棒糖前设备中的 Snackbar 高度太大的主要内容,如果未能解决你的问题,请参考以下文章

在棒棒糖前设备的工具栏上添加高程/阴影

底页不适用于 Kitkat(棒棒糖前设备)

使用配置 APK,同时仍以棒棒糖前设备为目标

用于 Pre-Lollipop 设备的具有弯曲背景的 Android Ripple 按钮

在 SnackBar 上包装内容高度

Android开发——Snackbar使用详解