2012-02-27 41 views
39

Tôi có một nút duy nhất trong bố cục tuyến tính. Tôi muốn nút chiếm một nửa chiều rộng của bố mẹ. Có cách nào để làm điều này trong xml bố trí.Nút nửa chiều rộng của màn hình

<LinearLayout 
    android:id="@+id/linearLayout1" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:orientation="horizontal" 
    android:gravity="center_horizontal" 
    android:padding="6dp"> 

    <Button 
     android:id="@+id/buttonCollect" 
     android:layout_width="wrap_content" 
     android:layout_height="match_parent" 
     android:text="@string/hello" 
     android:paddingLeft="8dp" 
     android:paddingRight="8dp"/> 

</LinearLayout> 

Câu hỏi của tôi giống như câu hỏi này Assign width to half available screen width declaratively ngoại trừ tôi chỉ có một nút duy nhất.

+0

có thể trùng lặp [Gán chiều rộng đến nửa chiều rộng màn hình có sẵn] (http://stackoverflow.com/questions/ 2581481/assign-width-to-half-available-width-width-declaratively) – Saif

Trả lời

75

Yep, giải pháp là rất giống với câu hỏi đó, nhưng bạn cũng muốn thiết lập các weightSum của LinearLayout mẹ:

<LinearLayout 
    android:id="@+id/linearLayout1" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:orientation="horizontal" 
    android:gravity="center_horizontal" 
    android:padding="6dp" 
    android:weightSum="2"> 

    <Button 
     android:id="@+id/buttonCollect" 
     android:layout_width="0dp" 
     android:layout_height="match_parent" 
     android:text="@string/hello" 
     android:paddingLeft="8dp" 
     android:paddingRight="8dp" 
     android:layout_weight="1" /> 

</LinearLayout> 
+2

Oh, và yeah nếu bạn thực sự muốn chính xác một nửa, bắt đầu với chiều rộng 0dp như những người khác được đề cập thường là một ý tưởng tốt. – kabuko

+0

Tôi có chế độ xem thẻ làm cha mẹ và trong bố cục tương đối đó. Tôi đã sử dụng kỹ thuật trên nhưng không hoạt động. –

3

Bạn cần phải thiết lập một (nửa) trọng lượng 0,5, và thiết lập chiều rộng để 0.

<Button 
    android:id="@+id/buttonCollect" 
    android:layout_width="0dip" 
    android:layout_weight="0.5" 
    android:layout_height="match_parent" 
    android:text="@string/hello" 
    android:paddingLeft="8dp" 
    android:paddingRight="8dp"/> 
+0

Tôi có dạng xem thẻ làm cha mẹ và trong bố cục tương đối đó. Tôi đã sử dụng kỹ thuật trên nhưng không hoạt động. –

+1

@PrashanthDebbadwar Tạo một câu hỏi mới, cung cấp xml của riêng bạn. Viết bình luận dưới một câu trả lời 3 năm tuổi sẽ không mang lại hoa quả. – Knossos

0

chính xác giống như các câu hỏi mà bạn đăng, chỉ cần sử dụng một cái nhìn giả thay vì:

<View 
android:weight="1" 
android:layout_width="0dp" 
android:layout_height="match_parent"/> 
1

Không có giải pháp nào trong số này có hiệu quả đối với tôi trên Android L. Tôi đã phải thực hiện wrap_content như sau:

<Button 
    android:layout_gravity="center" 
    android:id="@+id/btnSignin" 
    android:layout_width="wrap_content" 
    android:paddingLeft="20dp" 
    android:paddingRight="20dp" 
    android:layout_height="wrap_content" 
    android:text="@string/btn_signin" 
    android:layout_marginBottom="@dimen/activity_vertical_margin" /> 
Các vấn đề liên quan