繁体   English   中英

您需要使用Theme.AppCompat主题

[英]You need to use a Theme.AppCompat theme

是的,我知道,此问题在这里一次又一次地发布。 但是我找不到解决我特定问题的方法。

每次尝试制作Snackbar时,我的应用都会崩溃

您需要在设计库中使用Theme.AppCompat主题(或后代)。


好。 我知道:没有代码就无法调试,所以:

调用和抛出错误的行:

Snackbar.make(
    new CoordinatorLayout(getApplicationContext()),
    "Logged out.",
    Snackbar.LENGTH_SHORT).show();


类的定义:

public class MainActivity extends AppCompatActivity
    implements NavigationView.OnNavigationItemSelectedListener {


清单的开始

<application
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:supportsRtl="true"
    android:theme="@style/AppTheme">
    <activity
        android:name=".SplashActivity"
        android:theme="@style/SplashTheme">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <activity
        android:name=".MainActivity"
        android:label="@string/app_name"
        android:theme="@style/AppTheme.NoActionBar">
        <intent-filter>
            <action android:name="android.intent.action.SEARCH" />
        </intent-filter>

        <meta-data
            android:name="android.app.searchable"
            android:resource="@xml/searchable" />
    </activity>

哦,是的:AppTheme和AppTheme.NoActionbar都是Theme.AppCompat ...的父级。


如果您需要其他代码,请告诉我。

为什么需要带有getApplicationContext() CoordinatorLayout

您甚至可以使其与new CoordinatorLayout(MainActivity.this) (这使用Activity Context而不是Application Context

但是您应该保持简单。 尝试这个:

Snackbar.make(findViewById(android.R.id.content), "Logged out.", Snackbar.LENGTH_SHORT).show();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM