是的,我知道,这个问题一再发布在这里。但我无法找到解决我具体问题的方法。
每当我尝试制作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的父母......
如果您需要更多代码,请告诉我。
答案 0 :(得分:2)
为什么CoordinatorLayout
需要getApplicationContext()
?
您甚至可以使其与new CoordinatorLayout(MainActivity.this)
一起使用。 (这使用Activity
Context
代替Application
Context
。
但你应该保持简单。试试这个:
Snackbar.make(findViewById(android.R.id.content), "Logged out.", Snackbar.LENGTH_SHORT).show();