我正在开发一款不需要向后兼容的Android应用。截至目前,目标SDK版本为22。我使用的是原生Activity和Fragment,应用程序主题是android:Theme.Material.Light。 我的问题是我无法在现有的设置中使用Snackbar,它会抛出像
这样的异常android.view.InflateException:二进制XML文件行#18:错误膨胀类android.support.design.widget.Snackbar $ SnackbarLayout E / AndroidRuntime(19107):在android.view.LayoutInflater.createView(LayoutInflater.java: 640)E / AndroidRuntime(19107):在android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:750)
我用谷歌搜索但找不到任何带有活动的小吃吧的例子。因此有必要使用支持库,如
AppCompatActivity或android.support.v4.app.Fragment。
为了在我的应用中使用Snackbar?
答案 0 :(得分:3)
您需要使用支持设计库compile 'com.android.support:design:23.0.1'
才能正常工作:
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:23.0.1'
compile 'com.android.support:design:23.0.1'
}
答案 1 :(得分:2)
是的,在您的gradle上添加依赖项
compile 'com.android.support:appcompat-v7:23.0.1'
compile 'com.android.support:design:23.0.1'
然后,相应地更改您的应用主题,您需要使用AppCompat
主题。在Styles.xml
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<!-- Customize your theme here. -->
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
</style>
<style name="AppTheme.NoActionBar">
<item name="windowActionBar">false</item>
<item name="windowNoTitle">true</item>
</style>
在您的清单中:然后在应用上添加@style/AppTheme
并在每项活动中添加@style/AppTheme.NoActionBar
<application
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme">
<activity
android:name=".Activities.MainActivity"
android:label="@string/app_name"
android:theme="@style/AppTheme.NoActionBar">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
答案 2 :(得分:1)
如果你像我一样顽固而你不想使用支持库,但想在你的应用程序中使用快餐栏,那么你可以选择。我发现Use prepared parameterized statements本质上是你知道的Snackbar,只是独立于支持库。它适用于我,但它可能没有一些功能,如出现时向上移动FloatingActionButton。