有风格组吗?

时间:2015-05-26 03:36:39

标签: android styles themes

我有两组视图应该使用不同的样式,只需将它们称为leftStyles和rightStyles。

这两组视图具有相同的layout.xml,我想以程序方式更改容器的“styleGroup”以改变它的所有子项的样式,就像一个主题。 它是否存在可以应用于布局的“视图组级别”主题?

这两个组在同一页面中,所以我无法用主题区分它们。

有没有什么方法可以在ViewGroup中设置一组样式,所以这些样式可以被它的孩子使用?

1 个答案:

答案 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