Anu*_*shi 7 android android-theme
我无法理解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>
Run Code Online (Sandbox Code Playgroud)
在AndroidManifest.xml中,当我使用android:theme ="@ style/myParentTheme"时,标题的颜色和大小设置为我想要设置的内容.但是文本字段的样式更改为旧的常规文本框.当我使用android:theme ="@ style/AppTheme"时,UI看起来非常像"Android-like",但我对标题的具体设置没有任何影响.删除parent ="AppBaseTheme"使AppTheme样式的行为与myParentTheme样式相同.
另外,当我在键入Style标签的name属性时执行Ctrl + Space时,为什么我看不到所有R.attr元素?
请帮忙.谢谢.
Com*_*are 16
如果您选择使用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
如果您愿意,还可以根据需要添加特定于版本的样式信息.
在
AndroidManifest.xml
当我用android:theme="@style/myParentTheme"
标题的颜色和大小都设置为我想设置.但是文本字段的样式更改为旧的常规文本框.
那是因为你继承自Theme.Light
使用原始(非全息)小部件集.
当我使用
android:theme="@style/AppTheme"
UI看起来非常"类似Android"但我对标题的具体设置没有任何影响.
那是因为您决定创建myParentTheme
而不是将样式定义放入AppTheme
.