【问题标题】:Display SnackBar at top when Theme.NoTitleBar.Fullscreen is applied应用 Theme.NoTitleBar.Fullscreen 时在顶部显示 SnackBar
【发布时间】:2018-04-23 12:41:10
【问题描述】:

我通过实现以下内容在视图顶部显示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,我通过在清单中的活动中添加以下内容来做到这一点:

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

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

Caused by: android.view.InflateException: Binary XML file line #41: Error inflating class &lt;unknown&gt;

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

【问题讨论】:

  • 分享您的 xml 文件。
  • @HemantParmar xml很大,层级是LinearLayout->FrameLayout->FrameLayout->FrameLayout->RelativeLayout->RelativeLayout->@ 987654332@
  • @HemantParmar 第 41 行指的是 SurfaceView。

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


【解决方案1】:

您的问题如下。 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>

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

【讨论】:

    猜你喜欢
    • 2021-09-27
    • 2019-08-03
    • 2015-10-23
    • 2021-03-15
    • 2016-01-31
    • 1970-01-01
    • 2022-11-02
    • 2016-04-24
    • 2019-03-24
    相关资源
    最近更新 更多