如何从styles.xml - Android设置RelativeLayout的样式

时间:2013-11-29 17:36:54

标签: android styles themes relativelayout

我正在尝试从styles.xml设置RelativeLayout样式,因为我有不同的主题,我正在尝试更改它的背景。我该怎么做?

我知道ListView的样式就像这样(例如):

    <style name="Theme_Day" parent="Theme.Sherlock.Light">
    <item name="android:textColor">@color/def_actionbar_submenu_text</item>
    <item name="android:listViewStyle">@style/def_ListView</item>
    <item name="vpiTabPageIndicatorStyle">@style/CustomTabPageIndicator</item>
</style>

<style name="def_ListView" parent="@android:style/Widget.ListView">
    <item name="android:background">@drawable/listview_bg</item>
    <item name="android:textColor">@color/def_listview_title_text</item>
    <item name="android:divider">@color/def_listview_itemdivider_bg</item>
    <item name="android:dividerHeight">@dimen/listview_divider_height</item>
</style>

但是当我试图找到“android:relativeLayoutStyle”或者parent =“@ android:style / Widget.RelativeLayout”时我找不到任何东西..

我该怎么做? 提前致谢, 嚣。

3 个答案:

答案 0 :(得分:1)

您不需要任何父母只写

<style name="def_RelativeLayout">
    <item name="android:background">@drawable/listview_bg</item>
</style>

并将其设置在每个相对布局的样式属性

答案 1 :(得分:1)

创建一个可绘制文件,然后使用android:background属性设置@drawable/layout_style

例如,此可绘制文件用于创建类似设计的Google Card:

<强> background_card.xml

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item>
        <shape android:shape="rectangle"
            android:dither="true">
            <corners android:radius="2dp"/>
            <solid android:color="#ccc" />
        </shape>
    </item>

    <item android:bottom="2dp">
        <shape android:shape="rectangle"
            android:dither="true">
            <corners android:radius="2dp" />
            <solid android:color="@android:color/white" />
            <padding android:bottom="8dp"
                android:left="8dp"
                android:right="8dp"
                android:top="8dp" />
        </shape>
    </item>
</layer-list>

从布局XML文件中,您需要设置android:background属性:

android:background="@drawable/backgorund_card"

_

<RelativeLayout
                android:id="@+id/layout_id"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:background="@drawable/backgorund_card" >

答案 2 :(得分:1)

这个问题在很久以前就已被问过了,但你可以这样试试:

<style name="RelativeLayoutStyle" parent="@android:style/Widget">
    <item name="android:layout_marginLeft">10dp</item>
    <item name="android:layout_marginTop">7dp</item>
    <item name="android:layout_marginBottom">5dp</item>
    <item name="android:background">@android:color/holo_green_dark</item>
</style>

现在你可以做到:

<RelativeLayout
    style="@style/RelativeLayoutStyle"
    android:layout_width="match_parent"
    android:layout_height="wrap_content">
    ...

希望这有助于某人。