我通过实施以下内容在我的视图顶部显示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
时才会发生这种情况。
有人可以帮我解决这个问题或指出我正确的方向吗?
答案 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>
也可以在清单中将您的主题更改为此主题,并尝试它是否会起作用。