Tôi mới bắt đầu phát triển Android và tôi có câu hỏi về cách đặt trọng số trong bố cục tuyến tính.
Tôi đang cố gắng tạo một hàng có hai nút tùy chỉnh và văn bản chỉnh sửa tùy chỉnh. Văn bản chỉnh sửa chỉ nên chiếm nhiều chỗ như nội dung của nó và hai nút phải mở rộng theo chiều ngang để lấp đầy phần còn lại của không gian có sẵn trong hàng. Như thế này...
| [#Button++#] [#Button--#] [et] |
Sau nhiều lần thử, đây là lần gần nhất tôi có thể đạt được điều mình muốn, mặc dù nó có vẻ quá phức tạp.
| [Button] [Button] [###ET###] |
<LinearLayout
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="center_horizontal|center_vertical"
android:layout_weight="1"
>
<LinearLayout
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center_horizontal|center_vertical"
>
<RelativeLayout
android:id="@+id/btn_plus_container"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
>
<ImageButton
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:id="@+id/btn_plus"
android:background="@drawable/btn"
android:layout_centerInParent="true"
></ImageButton>
<TextView
android:textColor="#FAFAF4"
android:id="@+id/tv_dice_plus"
android:text="@string/tv_plus"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
></TextView>
</RelativeLayout>
</LinearLayout>
<LinearLayout
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center_horizontal|center_vertical"
>
<RelativeLayout
android:id="@+id/btn_minus_container"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
>
<ImageButton
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:id="@+id/btn_minus"
android:background="@drawable/btn"
android:layout_centerInParent="true"
></ImageButton>
<TextView
android:textColor="#FAFAF4"
android:id="@+id/btn_minus"
android:text="@string/tv_minus"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
></TextView>
</RelativeLayout>
</LinearLayout>
<LinearLayout
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center_horizontal|center_vertical"
>
<EditText
android:textColor="#FAFAF4"
android:text="@string/et_output"
android:id="@+id/et_output"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:inputType="number"
android:selectAllOnFocus="true"
android:minWidth="50sp"
android:maxWidth="50sp"
android:background="@drawable/tv_black_background3"
android:textColorHighlight="#c30505"
></EditText>
</LinearLayout>
</LinearLayout>
Theo tôi hiểu, việc đặt [android: layout_weight = "2"] cho bố cục tuyến tính giữ các nút sẽ khiến chúng chiếm nhiều chỗ hơn văn bản chỉnh sửa, nhưng đối với tôi thì ngược lại, khiến chúng có kích thước bằng một nửa.
| [Btn] [Btn] [#####et#####] |
Tôi đã thử rất nhiều cách kết hợp khác nhau mà tôi thậm chí không thể nhớ chúng, và không có cách nào hiệu quả.