gpt4 book ai didi

android - 如何正确使用 Material 主题?

转载 作者:搜寻专家 更新时间:2023-11-01 08:38:26 26 4
gpt4 key购买 nike

我正在使用 minSdkVersion=21 开发应用。我不想支持 21 以下的旧 API。

Project structure > Dependecies 中,我仍然可以看到附加的 v7 支持库。这背后的原因是什么?

Material 主题应用到 API 21 设备的正确方法是什么,因为我不断因 Coordinator layout 膨胀而出错,或者它告诉我使用 Theme.AppCompat 中的主题而不是 android:Theme.Material.Light.DarkActionBar

(为了安全起见,跳过了一些属性)

list .xml

<application
android:theme="@android:style/Theme.Material.Light.DarkActionBar">
<activity
android:name=".MainActivity"
android:theme="@android:style/Theme.Material.Light.DarkActionBar">
</activity>
</application>

值\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" />

v21\styles.xml

<resources>
<style name="AppTheme" parent="android:Theme.Material.Light.DarkActionBar">
<!-- item tags here -->
</style>
</resources>

build.gradle

compileSdkVersion 23
buildToolsVersion "23.0.2"

defaultConfig {
applicationId "com.app.karti.themetestv3"
minSdkVersion 21
targetSdkVersion 23
versionCode 1
versionName "1.0"
}

现在,我在这里得到 2 个异常(exception):1. 错误膨胀类 android.support.design.widget.CoordinatorLayout2. 您需要将 Theme.AppCompat 主题(或后代)与设计库一起使用。

如果有人能提供帮助,我会很高兴。谢谢。

PS:MainActivity 类扩展 Activity 而不是 AppCompatActivity

最佳答案

What is the reason behind this?

因为要么是您自己添加的,要么是您使用了添加它的模板。例如,IDE 附带的 Android Studio new-project 和 new-activity 向导模板都使用 appcompat-v7

What is the correct way to apply Material theme to API 21 devices because I keep on getting errors due to inflating of Coordinator layout or it tells me to use theme from Theme.AppCompat instead of android:Theme.Material.Light.DarkActionBar.

您不能使用 CoordinatorLayout 或 Android Design Support 库中的任何内容,除非您还使用 appcompat-v7 以及所有需要的东西(例如,更改主题,使用AppCompatActivity).

因此,您的选择是:

  1. 避免使用 appcompat-v7,让您的 Activity 和其他东西保持独立,但不要使用 CoordinatorLayout,或者

  2. 使用appcompat-v7,或者

  3. 避免使用 appcompat-v7,让您的 Activity 和其他东西保持独立,并尝试跨端口 CoordinatorLayout 以及您想从 Android 使用的任何其他东西设计支持库以不使用 appcompat-v7

我还没有尝试过交叉移植 CoordinatorLayout。交叉移植 ActionBarDrawerToggle 进行得很顺利。交叉移植 Snackbar 看起来很痛苦,所以我使用了一个与 appcompat-v7 无关的开源软件。

关于android - 如何正确使用 Material 主题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34638368/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com