应用Theme.NoTitleBar.Fullscreen时,在顶部显示SnackBar

时间:2017-11-10 10:02:27

标签: android android-theme android-styles android-snackbar

我通过实施以下内容在我的视图顶部显示SnackBar

Snackbar snack = Snackbar.make(rootlayout, "SnackBar Test!", Snackbar.LENGTH_LONG);
View view = snack.getView();
FrameLayout.LayoutParams params =(FrameLayout.LayoutParams)view.getLayoutParams();
params.gravity = Gravity.TOP;
view.setLayoutParams(params);
snack.show();

这是完美的,但问题是活动是全屏/ NoTitleBar,我通过在Manifest中添加以下活动来完成此操作:

<activity android:name=".MyActivty"
        android:theme="@android:style/Theme.NoTitleBar.Fullscreen" />

当我运行它时,我收到以下错误:

Caused by: android.view.InflateException: Binary XML file line #41: Error inflating class <unknown>

仅当我将活动主题设置为Theme.NoTitleBar.Fullscreen时才会发生这种情况。

有人可以帮我解决这个问题或指出我正确的方向吗?

1 个答案:

答案 0 :(得分:2)

您的问题如下。 First Snackbar依赖于支持设计库。适用于AppCompatActivity。您尝试使用的主题不是来自支持库。要使用全屏appcompat主题,您可以使用此

<style name="Theme.AppCompat.Light.NoActionBar.FullScreen" parent="@style/Theme.AppCompat.Light">
    <item name="android:windowNoTitle">true</item>
    <item name="android:windowActionBar">false</item>
    <item name="android:windowFullscreen">true</item>
    <item name="android:windowContentOverlay">@null</item>
</style>

也可以在清单中将您的主题更改为此主题,并尝试它是否会起作用。