我有两组视图应该使用不同的样式,只需将它们称为leftStyles和rightStyles。
这两组视图具有相同的layout.xml,我想以程序方式更改容器的“styleGroup”以改变它的所有子项的样式,就像一个主题。 它是否存在可以应用于布局的“视图组级别”主题?
这两个组在同一页面中,所以我无法用主题区分它们。
有没有什么方法可以在ViewGroup中设置一组样式,所以这些样式可以被它的孩子使用?
答案 0 :(得分:1)
我希望它对你有所帮助。这是你可以宣告你的团体风格,儿童风格,单一风格的风格......就像这样
<style name="Widget.Group" parent="@android:style/Widget">
<item name="android:layout_width">match_parent</item>
<item name="android:layout_height">46dp</item>
<item name="android:layout_marginLeft">10dp</item>
<item name="android:layout_marginRight">10dp</item>
<item name="android:layout_marginTop">-1dp</item> <!-- Ensures we don't get a 2 dp top stroke -->
<item name="android:padding">4dp</item>
<!--<item name="android:background">@drawable/bg_input_group</item>-->
</style>
<style name="Widget.Group.Top">
<item name="android:layout_marginTop">10dp</item>
<!--<item name="android:background">@drawable/bg_input_group_top</item>-->
</style>
<style name="Widget.Group.Bottom">
<item name="android:layout_marginTop">20dp</item>
<!--<item name="android:background">@drawable/bg_input_group_bottom</item>-->
</style>
<style name="Widget.Group.Single" parent="Widget.Group.Top">
<!--<item name="android:background">@drawable/bg_input_group_single</item>-->
</style>
你的布局文件就像这样使用这种风格
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#eee">
<!-- Input Group -->
<EditText style="@style/Widget.Group.Top" />
<EditText style="@style/Widget.Group" />
<EditText style="@style/Widget.Group.Bottom" />
<!-- Single item -->
<EditText style="@style/Widget.Group.Single" />
</LinearLayout>
了解更多详情click