CardView应该首先包装布局吗?

时间:2016-04-29 04:45:21

标签: android xml android-layout android-studio android-cardview

我的cardview只有一个textview。

<android.support.v7.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:card_view="http://schemas.android.com/apk/res-auto"
    android:id="@+id/card_view"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_margin="1dp"
    android:foreground="@drawable/selector_normal"
    android:clickable="true"
    card_view:cardCornerRadius="2dp">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal">

        <TextView
            android:id="@+id/txt_command"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:drawablePadding="@dimen/padding_standard"
            android:padding="@dimen/padding_standard"
            android:textColor="@color/colorLightBlue"
            android:textSize="@dimen/text_size_medium_small" />

    </LinearLayout>
</android.support.v7.widget.CardView>

显然,LinearLayout除了包装TextView之外什么都不做。但是,如果我删除LinearLayout,让CardView包装只是TextView,我的整个TextView就会消失。这是不允许的吗?

是否可以删除LinearLayout?

我希望通过删除冗余布局来减少布局层次结构。

1 个答案:

答案 0 :(得分:2)

不,没有必要让LinearLayout高于android.support.v7.widget.CardView

<android.support.v7.widget.CardView
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:card_view="http://schemas.android.com/apk/res-auto"
    android:id="@+id/card_view"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_margin="1dp"
    android:clickable="true"
    android:foreground="@drawable/selector_normal"
    card_view:cardCornerRadius="2dp">

    <TextView
        android:id="@+id/txt_command"
        android:layout_width="match_parent" //change here to match_parent
        android:layout_height="wrap_content"
        android:drawablePadding="@dimen/padding_standard"
        android:padding="@dimen/padding_standard"
        android:textColor="@color/colorLightBlue"
        android:hint="Your Text Here"
        android:textSize="@dimen/text_size_medium_small"/>

</android.support.v7.widget.CardView>