2012-03-05 15 views
6

Tôi có bố cục mà tôi đang tăng để thêm động TableRows vào TableLayout. Tôi sử dụng layout_weight để kéo dài các cột theo chiều rộng mong muốn.Chế độ xem trung tâm (Hộp kiểm) sử dụng layout_weight trong cột TableRow

Bảng được đặt bên trong một ScrollView để tôi có thể cuộn giữa các hàng được tạo. Tôi cũng có một tiêu đề bảng mà tôi đặt trong một LinearLayout trên đầu trang. Tôi đã làm điều này vì tôi không muốn cuộn tiêu đề. Đó cũng là lý do tại sao tôi không sử dụng layout_span thay vì layout_weight.

Vấn đề là một trong các dạng xem trong TableRow là CheckBox và tôi muốn nó ở giữa, nhưng vì thuộc tính layout_width là '0' tôi không thể sử dụng layout_gravity = "center" để căn giữa nó.

Dưới đây là file 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> 

Đây là cách nó trông: CheckBox not centered

Đây là cách tôi muốn nó trông: enter image description here

* Những màu sắc cho biểu hiện chỉ có mục đích. Chúng có thể bị bỏ qua.

Tôi rất cảm kích nếu ai đó có thể giúp đỡ. Cảm ơn bạn

Trả lời

21

thử điều này:

<LinearLayout 
     android:id="@+id/linearLayout1" 
     android:layout_width="wrap_content" 
     android:gravity="center" 
     android:layout_weight="0.08" 
     android:layout_height="fill_parent" > 

    <CheckBox 
     android:id="@+id/order_table_row_present_CheckBox" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     /> 
    </LinearLayout> 
+1

Cảm ơn bạn. Bạn đặt tôi đi đúng hướng. Tôi đã kết thúc bằng cách sử dụng RelativeLayout với layout_width = "0dp" vì có chiều rộng dựa trên 0 là cần thiết và RelativeLayout có trọng lượng nhẹ hơn LinearLayout. Nó dường như không có tác động đáng kể đến hiệu suất. Cảm ơn một lần nữa – Bandreid

+3

Điều này dường như hoạt động, nhưng tại sao lại đóng gói hộp kiểm trong một bố cục khác là giải pháp làm việc duy nhất? Có vẻ giống như một hack hơn là một cách thích hợp để làm điều đó. –

Các vấn đề liên quan