我的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?
我希望通过删除冗余布局来减少布局层次结构。
答案 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>