6
我有一個佈局,我正在充氣以便動態地將TableRows添加到TableLayout中。我使用layout_weight將列拉伸到所需的寬度。使用TableRow列中的layout_weight的中心視圖(CheckBox)
該表放在ScrollView裏面,所以我可以在生成的行之間滾動。我也有一個表頭,我把它放在頂部LinearLayout。我這樣做是因爲我不想滾動標題。這也是爲什麼我不使用layout_span而不是layout_weight。
問題是,TableRow中的一個視圖是CheckBox,我希望它居中,但由於layout_width屬性爲'0',因此我無法使用layout_gravity =「center」來居中它。
下面是XML文件:
<?xml version="1.0" encoding="utf-8"?>
<TableRow xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/order_form_line_TableRow"
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<TextView
android:id="@+id/order_table_row_product_description_TextView"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_weight="0.22"
android:maxLines="2"
android:textSize="18sp" />
<CheckBox
android:id="@+id/order_table_row_present_CheckBox"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_weight="0.08" />
<EditText
android:id="@+id/order_table_row_facings_EditText"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="0.10"
android:inputType="number" />
<EditText
android:id="@+id/order_table_row_free_cu_given_EditText"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="0.10"
android:inputType="number" />
<EditText
android:id="@+id/order_table_row_order_quantity_EditText"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="0.10"
android:inputType="number" />
<EditText
android:id="@+id/order_table_row_free_order_EditText"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="0.10"
android:inputType="number" />
<Spinner
android:id="@+id/order_table_row_wholesaler_Spinner"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_weight="0.15" />
<EditText
android:id="@+id/order_table_row_delivery_date_EditText"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="0.15"
android:ellipsize="end"
android:inputType="date"
android:singleLine="true" />
</TableRow>
這是它的外觀:
這是我希望它看起來:
*顏色是表象僅用於目的。他們可以被忽略。
如果有人能幫忙,我將非常感激。謝謝
謝謝。你讓我走在正確的軌道上。我最終使用了一個帶有layout_width =「0dp」的RelativeLayout,因爲基於0的寬度是必要的,並且RelativeLayout比LinearLayout更輕。它對性能似乎沒有顯着的影響。再次感謝 – Bandreid 2012-03-05 10:19:05
這似乎工作,但爲什麼封裝複選框在另一個佈局唯一的工作解決方案?看起來更像是一種黑客而不是正確的方式來做到這一點。 – 2012-10-31 18:42:15