对话框主题.设备默认强制



我正在制作一个对话框,我想在其中显示编辑文本和单选按钮。

但主题并不适用。根据布局检查器的说法,视图应用了正确的主题(显示为"强制"(,但有"android:style/Theme.DeviceDefault((",它也是"强制"的(它显示在我的样式上方,如果这很重要(。

问题是,视图在不同的 API 上看起来不同,我猜这是由该设备默认引起的。我没有在任何地方设置任何关于DeviceDefault的内容,但它适用于我的所有对话框。

知道如何驳回它吗?谢谢。

关于Theme.DeviceDefaulin Android:

有许多主题可用于安卓设备。

  • 主题:最早版本的 Android 默认为 2.3 姜饼(10(
  • 主题全息:来自安卓3.0蜂窝 (11(
  • 主题材料: 来自安卓 5.0 棒棒糖 (21(
  • Theme.DeviceDefault:来自Android 4.0冰淇淋三明治(14(,一个可以由设备制造商自定义的主题。它表示设备的本机外观。

指定不同的主题:

Android的资源覆盖系统允许根据设备API级别指定样式,通过Android Studio将为您设置。

例如,res/values-v11 和 res/values-v21中样式的不同版本。

/res/values/styles.xml应用于每个设备并用作基础:

<resources>
<style name="AppTheme" parent="android:Theme.Light"/>
</resources>

/res/values-v11/styles.xml加载到具有 API 级别 11 及以上(包括 21 及以上(的所有设备上:

<resources>
<style name="AppTheme" parent="android:Theme.Holo.Light"/>
</resources>

/res/values-v21/styles.xml加载到具有 API 级别 21 及以上版本的所有设备上:

<resources>
<style name="AppTheme" parent="android:Theme.Material.Light"/>
</resources>

AndroidManifest.xml是使用自定义主题的地方。

<application
android:theme="@style/AppTheme"
...

每个 API 级别都有自己的默认主题,由于您对应用使用默认主题,Android 会根据 API 级别调整主题,这在每个设备上会有所不同。请记住,只有添加样式属性以获取指定样式属性的元素。子对象或子视图不获取样式属性。如果希望子视图继承样式,请改为使用android:theme属性应用样式。

这个问题与你在哪里以及如何应用自己的主题有关。 您应该在AndroidManifest.xml文件中应用主题。如果在application tagactivity tag中应用主题,则可以使用主题覆盖应用程序的不同部分。在没有任何代码的情况下,很难说你做了什么。

应将主题应用于文件的以下部分之一。

覆盖整个应用程序

<manifest ... >
<application android:theme="@style/Theme.AppCompat" ... >
</application>
</manifest>

仅涵盖一项活动

<manifest ... >
<application ... >
<activity android:theme="@style/Theme.AppCompat.Light" ... >
</activity>
</application>
</manifest>

如果视图仅支持您在创建的样式中声明的某些属性,则它仅应用这些属性,而忽略它不支持的属性。

如果要更改默认样式和颜色,可以在styles.xml文件中覆盖它们。搜索表示颜色值的项目名称,并在res/values/colors.xml文件中更改相应的值。

我希望这些信息能解决您的问题,但正如我所说,如果没有代码存在,这真的很难说。

相关内容

  • 没有找到相关文章

最新更新