因此,在Android的资源中,您可以应用具有类型布局的项目以指向特定的布局文件。这非常适合在不同设备上重复使用。但是如何将其应用于特定样式?
<attr name="item_name" format="reference" />
<style name="AppTheme" parent="AppBaseTheme">
<item name="item_name">@layout/layout_name</item>
</style>
上述内容不起作用。尝试将布局应用于活动时会产生膨胀错误。
修改
我自己想通了。以下是这样做的方法。
RES /值/ attr.xml
<attr name="item_name" format="reference" />
RES /值/ styles.xml
<style name="AppTheme" parent="AppBaseTheme">
<item name="item_name">@layout/layout_name</item>
</style>
的src / package.name / MyActivity.java
public class MyActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
/*
* Get the layout id from the attribute
*/
TypedArray a = getTheme().obtainStyledAttributes(new int[]{R.attr.item_name});
int layoutId = a.getResourceId(0, 0);
a.recycle();
/*
* Set the layout
*/
setContentView(layoutId);
}
}
现在,您可以通过切换样式/主题来切换整个布局文件。
答案 0 :(得分:0)
这里我有自定义操作栏样式。您可以像这样使用
<style name="MyActionBar" parent="@android:style/Widget.Holo.Light.ActionBar">
<item name="android:background">#de5188</item>
<item name="android:titleTextStyle">@style/MyActionBarTitleText</item>
<item name="android:subtitleTextStyle">@style/MyActionBarSubTitleText</item>
<style name="MyActionBarTitleText"
parent="@android:style/TextAppearance.Holo.Widget.ActionBar.Title">
<item name="android:textColor">#ffffff</item>
<item name="android:textStyle">bold</item>
我希望这个会帮助你:)。