我正在使用WHERE s.Name IN (@StateDivisionID) AND
D.FinYearEnd <> -1
开发一款应用。我不希望支持21岁以下的旧API。
在minSdkVersion=21
&gt; Project structure
,我仍然可以看到附加的Dependecies
支持库。这背后的原因是什么?
将v7
主题应用于Material
设备的正确方法是什么,因为我因API 21
的膨胀而继续收到错误,或者它告诉我使用Coordinator layout
中的主题而不是Theme.AppCompat
。
(某些属性因严重性而跳过)
的Manifest.xml
android:Theme.Material.Light.DarkActionBar
值\ styles.xml
<application
android:theme="@android:style/Theme.Material.Light.DarkActionBar">
<activity
android:name=".MainActivity"
android:theme="@android:style/Theme.Material.Light.DarkActionBar">
</activity>
</application>
V21 \ styles.xml
<style name="AppTheme" parent="android:Theme.Material.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 name="AppTheme.AppBarOverlay" parent="ThemeOverlay.AppCompat.Dark.ActionBar" />
<style name="AppTheme.PopupOverlay" parent="ThemeOverlay.AppCompat.Light" />
的build.gradle
<resources>
<style name="AppTheme" parent="android:Theme.Material.Light.DarkActionBar">
<!-- item tags here -->
</style>
</resources>
现在,我在这里得到2个例外:
1. compileSdkVersion 23
buildToolsVersion "23.0.2"
defaultConfig {
applicationId "com.app.karti.themetestv3"
minSdkVersion 21
targetSdkVersion 23
versionCode 1
versionName "1.0"
}
2. Error inflating class android.support.design.widget.CoordinatorLayout
PS:MainActivity类扩展You need to use a Theme.AppCompat theme (or descendant) with the design library.
而不是Activity
答案 0 :(得分:3)
这背后的原因是什么?
因为您自己添加了它,或者您使用了添加它的模板。例如,IDE随附的Android Studio新项目和新活动向导模板均使用appcompat-v7
。
将材质主题应用于API 21设备的正确方法是什么,因为我因协调器布局的膨胀而继续出现错误,或者它告诉我使用Theme.AppCompat中的主题而不是android:Theme.Material.Light.DarkActionBar
您不能使用CoordinatorLayout
或Android设计支持库中的任何内容,除非您还使用appcompat-v7
以及所有这些(例如,使用AppCompatActivity
更改主题)。< / p>
所以,你的选择是:
避免使用appcompat-v7
,单独留下您的活动和内容,但不要使用CoordinatorLayout
或
使用appcompat-v7
或
避免使用appcompat-v7
,将您的活动和内容单独留下,并尝试跨越CoordinatorLayout
以及您要在Android设计支持库中使用的任何其他内容,以便不使用{{ 1}}
我还没有尝试过移植appcompat-v7
。交叉移植CoordinatorLayout
进展顺利。交叉移植ActionBarDrawerToggle
看起来很痛苦,因此我使用的开源代码与Snackbar
无关。