2013-04-12 20 views
20

Tôi có một màu vàng RelativeLayout chứa một màu đỏ cao LinearLayout.Không thể nhận được clipChildren = thuộc tính false để làm việc

Để làm cho toàn bộ LinearLayout thể nhìn thấy, tôi đặt android:clipChildren="false", nhưng điều này không làm việc như mong đợi:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="44dp" 
    android:background="#FFFF00" 
    android:clipChildren="false" > 

    <LinearLayout 
     android:layout_width="50dp" 
     android:layout_height="100dp" 
     android:background="#FF0000" 
     android:orientation="vertical" > 

    </LinearLayout> 

</RelativeLayout> 
  • với android:clipChildren="true":

enter image description here

với màu đỏ LinearLayout được cắt bớt như mong đợi

  • với android:clipChildren="false":

enter image description here

nơi chiều cao LinearLayout được cắt bớt, và chiều rộng thiết lập trong bố trí không được tôn trọng.

Có vấn đề gì?

EDIT

Nếu tôi quấn container trong một LinearLayout với cả hai kích thước phù hợp với cha mẹ của mình, tôi nhận được kết quả tương tự (tôi đã kiểm tra mà chứa container LinearLayout của lấp đầy toàn bộ màn hình).

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 

    <RelativeLayout 
     android:layout_width="match_parent" 
     android:layout_height="44dp" 
     android:background="#FFFF00" 
     android:clipChildren="false" > 

     <LinearLayout 
      android:layout_width="50dp" 
      android:layout_height="100dp" 
      android:background="#FF0000" 
      android:orientation="vertical" > 
     </LinearLayout> 
    </RelativeLayout> 

</LinearLayout> 

EDIT 2

Nếu tôi đặt android:clipChildren="false" thuộc tính trong LinearLayout mẹ, tôi nhận được như sau:

enter image description here

+0

cách bố trí tương đối có android: layout_height = "44dp". chính nó được kẹp bởi phụ huynh của nó – njzk2

+0

Tôi đặt bố trí này trực tiếp với setContentView (R.layout.test) ;. Không có cha mẹ rõ ràng. Không phải là Viewgroup gốc lấp đầy toàn bộ màn hình? Và tại sao chiều rộng của LinearLayout được sửa đổi? – jul

+0

@ njzk2: để thử nghiệm nhiều hơn, tôi đã thử bố cục khác, và nó vẫn không hoạt động (xem bản chỉnh sửa của tôi) – jul

Trả lời

13

Ngoài ra thiết lập

android:clipToPadding="false" 

Bên cạnh:

android:clipChildren="false" 
46

android:clipChildren="false" cho phép mỗi đứa trẻ để vẽ bên ngoài của riêng nó giới hạn, trong phụ huynh. Nó không cho phép trẻ em vẽ bên ngoài của chính cha mẹ. Cho rằng bạn sẽ cần phải thiết lập android:clipChildren="false" trên ông bà (là tốt).

Tôi nghĩ những gì bạn đang thấy với màu sắc chỉ vì màu sắc không có giới hạn cố hữu. Nếu không có gì cắt chúng, màu sắc sẽ mãi mãi. Lý thuyết của tôi là nếu bạn sử dụng, nói, một hình ảnh px 1x1 kéo dài thay vì một màu, mọi thứ sẽ khác nhau.

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