2012-07-31 45 views
16

Có thể làm cho các lề bị thu gọn trong Android không? Giả sử tôi có một số LinearLayout và thêm ba TextView s, mỗi số có một số android:layout_margin của 10dp. Tôi nhận được kết quả sau:Lề thu gọn trong bố cục Android

actual result

Tuy nhiên, tôi muốn để có được kết quả này:

expected result

Tôi biết rằng tôi có thể workaround này bằng cách thiết lập trên/lề dưới khác nhau cho các mục khác nhau:

  • đặt lề trên của mục đầu tiên và lề dưới của mục cuối cùng thành 10dp,
  • thiết lập/lề dưới remainding trên xuống 5dp,

nhưng điều đó làm cho các thiết kế phức tạp hơn (đặc biệt là nếu TextView được tự động tạo ra). Có cách nào để làm cho lề hoạt động như trong CSS? (Để giải thích lý do tại sao điều này có ý nghĩa, hãy xem: What is the point of CSS collapsing margins?)

Trả lời

14

Những gì tôi thường làm để tự khắc phục điều này, chỉ đơn giản là cắt giảm một phần của View (ví dụ: TextView) và thêm số đó vào ViewGroup chứa (tức là LinearLayout của bạn). Bằng cách này bạn sẽ kết thúc với khoảng cách xung quanh tất cả các mục. Ví dụ:

<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical" 
    android:padding="5dip" 
    > 
    <TextView 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_margin="5dip" 
     android:text="I'm a TextView!" 
     /> 
    <TextView 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_margin="5dip" 
     android:text="I'm a TextView!" 
     /> 
    <TextView 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_margin="5dip" 
     android:text="I'm a TextView!" 
     /> 
</LinearLayout> 
Các vấn đề liên quan