我想創建一個類似於在一個回收視圖cardview內的列表。如何避免嵌套的LinearLayout或RelativeLayout
這是一個應該在回收站適配器的getholderview函數中以編程方式填充的詳細框。
現在我想出了下面的代碼,但不知何故,我覺得這不是很高效。
我怎樣才能避免很多嵌套的佈局來實現這一點,我應該甚至試圖避免在這種情況下呢?
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:card_view="http://schemas.android.com/apk/res-auto"
xmlns:app="http://schemas.android.com/tools"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<android.support.v7.widget.CardView
<RelativeLayout ...>
... Other content Title
<ImageView
android:id="@+id/profileImage"
android:layout_width="50dp"
android:layout_height="50dp"
android:background="@drawable/ic_loyalty_black_24dp"
/>
<TextView
android:id="@+id/cell_textView"
android:layout_toRightOf="@id/profileImage"
android:layout_toEndOf="@id/profileImage"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Medium Text"
android:focusable="true"
android:clickable="true"
android:foreground="?android:attr/selectableItemBackground"
android:textAppearance="?android:attr/textAppearanceMedium"/>
<TextView
android:id="@+id/fat_bar_text"
android:layout_toRightOf="@id/profileImage"
android:layout_toEndOf="@id/profileImage"
android:layout_below="@id/cell_textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Fett:"
android:layout_marginTop="3dp"
android:textAppearance="?android:attr/textAppearanceSmall"/>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/detailBox"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_below="@id/fat_bar_text"
android:gravity="bottom">
<LinearLayout
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
android:layout_gravity="start"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="0.5"
android:text="Value:"/>
<TextView
android:layout_weight="0.5"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="500€"/>
</LinearLayout>
<LinearLayout
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
android:layout_gravity="start"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="0.5"
android:text="Test:"/>
<TextView
android:layout_weight="0.5"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="blah"/>
</LinearLayout>
</LinearLayout>
</RelativeLayout>
</android.support.v7.widget.CardView>
</LinearLayout>
謝謝,我試圖刪除第二個但後來的意見不再定位了,請看編輯的問題。 – cinatic
我不明白?你是否在第二個LinearLayout的子視圖中設置了android:below? – Harlan
你的意思是android:layout_below,studio在自動完成時不會給我這個選項,我應該設置它的什麼id,cardview的id? – cinatic