LinearLayout的材料设计应用范围广泛的背景颜色

时间:2016-01-03 06:45:57

标签: android material-design

我的android应用程序中有一个布局,如下图所示,没什么特别的,只有三个水平放置的按钮。但在使用Material设计样式时,此LinearLayout的默认背景颜色为黑色。

使用Material Theme时,有没有办法控制所有Linerar布局的背景颜色?我查看了themes_matrial.xml,其中没有我看到的部分设置了通用背景颜色。我是否需要在我的xml文件中为所有LinearLayouts手动设置它?

我的styles.xml如下所示:

    <LinearLayout
        android:id="@+id/action_layout"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        >

        <Button
            android:id="@+id/mostfav"
            style="?android:attr/buttonBarButtonStyle"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:onClick="mostFav"
            android:text="Most Fav" />

        <Button
            android:id="@+id/sortDateButton"
            style="?android:attr/buttonBarButtonStyle"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:onClick="sortByDate"
            android:text="@string/sortdate" />

        <Button
            android:id="@+id/sortTextButton"
            style="?android:attr/buttonBarButtonStyle"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:onClick="sortByText"
            android:text="@string/sorttext" />

        <TextView
            android:id="@+id/tweetCount"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:gravity="right"
            android:textColor="@color/colorPrimaryText" />
    </LinearLayout>

我的LinearLayout如下:

#import <UIKit/UIKit.h>

@interface CustomButton : UIButton

@end

1 个答案:

答案 0 :(得分:0)

AFAIK,使用style.xml无法做到这一点,但您可以通过创建自定义LinearLayout来实现。

public class MyLinearLayout extends LinearLayout {
    public MyLinearLayout(Context context) {
        super(context);
        this.setBackgroundColor(Color.RED);
    }

    public MyLinearLayout(Context context, AttributeSet attrs) {
        super(context, attrs);
        this.setBackgroundColor(Color.RED);
    }

    public MyLinearLayout(Context context, AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);
        this.setBackgroundColor(Color.RED);
    }

    public MyLinearLayout(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) {
        super(context, attrs, defStyleAttr, defStyleRes);
        this.setBackgroundColor(Color.RED);
    }
}

在xml文件中,

<com.yourpackage.name.MyLinearLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"></com.yourpackage.name.MyLinearLayout>

希望这会有所帮助:)