微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

AppBaseTheme在Android应用程序中做了什么

我无法理解AppBaseTheme在 Android中会发生什么.
在styles.xml中,我有以下代码
<resources xmlns:android="http://schemas.android.com/apk/res/android">

<style name="mycolor">
    <item name="android:background">@layout/header_gradient</item>
    <item name="android:padding">5dip</item>
</style>
<style name="myParentTheme" parent="android:Theme.Light">
    <item name="android:attr/windowTitleSize">40dip</item>
    <item name="android:attr/windowTitleBackgroundStyle">@style/mycolor</item>
</style>


<!-- Application theme. -->
<style name="AppTheme" parent="AppBaseTheme">
</style>

在AndroidManifest.xml中,当我使用android:theme =“@ style / myParentTheme”时,标题的颜色和大小设置为我想要设置的内容.但是文本字段的样式更改为旧的常规文本框.当我使用android:theme =“@ style / AppTheme”时,UI看起来非常像“Android-like”,但我对标题的具体设置没有任何影响.删除parent =“AppBaseTheme”使AppTheme样式的行为与myParentTheme样式相同.

另外,当我在键入Style标签的name属性时执行Ctrl Space时,为什么我看不到所有R.attr元素?

请帮忙.谢谢.

解决方法

如果您选择使用Eclipse新项目向导创建活动,Eclipse将为您定义AppTheme和AppBaseTheme资源. AppBaseTheme通常有三个定义,res / values /,res / values-v11 /和res / values-v14 /. AppTheme将继承AppBaseTheme.

目的是让您将大部分特定于应用程序的样式信息放在AppTheme中,而不是发明自己的主题(例如myParentTheme). AppBaseTheme主要确保您继承正确的OS提供的主题(例如,Theme.Light vs. Theme.Holo.Light vs. Theme.Holo.Light.DarkActionBar).如果您愿意,还可以将特定于版本的样式信息添加到相应的AppBaseTheme中.

In AndroidManifest.xml when I use android:theme="@style/myParentTheme" the color and size of the title are set to what I want to set. But the style for text fields changes to the old regular textBoxes.

那是因为你继承自Theme.Light,它使用原始(非全息)小部件集.

When I use android:theme="@style/AppTheme" the UI looks very “Android-like” but my specific settings to the title do not have any effect.

那是因为你决定创建myParentTheme而不是将你的风格定义放到AppTheme中.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐