2012-05-15 32 views
15

Tôi có LinearLayout với một số LinearLayouts khác bên trong. Bố cục trẻ em có bộ chọn nền. Tôi cần phải thay đổi màu của bố cục gốc cũng như khi trẻ được nhấn. Tôi cũng đã thiết lập một bộ chọn nền cho cha mẹ, nhưng nó chỉ kích hoạt khi nhấp vào bên ngoài của bất kỳ trẻ em nào.Android: Đặt kích hoạt bộ chọn gốc khi chọn con

Làm cách nào để tránh điều này?

Cảm ơn!

Trả lời

39

Hãy thử thêm này để bố trí các thuộc tính cho LinearLayout mẹ:

android:addStatesFromChildren="true" 

Ngoài ra, trong cuộc gọi mã:

parentLayout.setAddStatesFromChildren(true); 

Trong cả hai trường hợp, hãy chắc chắn rằng bố trí con làm không có thuộc tính android:duplicateParentState (và không gọi setDuplicateParentState(true)), hoặc bạn sẽ nhận được một ngoại lệ khi chạy khi hệ thống phát hiện sự phụ thuộc vòng tròn.

+0

Bạn sẽ làm điều ngược lại như thế nào: kích hoạt bộ chọn của trẻ khi chạm vào vùng chứa? –

+0

@androiddeveloper - Bạn có thể sử dụng 'android: duplicateParentState' trong phần tử con. Đứa trẻ sau đó sẽ sử dụng trạng thái có thể vẽ được của bố mẹ thay vì của chính nó. Sau đó, phụ huynh sẽ phải có thể nhấp, có thể chọn hoặc bất kỳ điều gì bạn cần cho trẻ. –

+0

Tôi hiểu. có thể đặt bộ chọn ở trên cùng không? Ngoài ra, là có một giải pháp khác nhau cho các mục listView (trong đó mỗi mục là một bố trí với một cái nhìn như tôi đã viết ở đây)? –

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