2011-11-21 29 views
7

Theo mặc định, ListView thay đổi màu nền thành màu cam khi được nhấn và cũng là TextColor trong số TextView thay đổi thành màu trắng/đen. Bằng cách áp dụng bộ chọn trên mục ListView, chúng tôi có thể đặt màu nền cho trạng thái được nhấn nhưng chúng tôi cũng có thể xác định TextColor cho mục TextView bên trong mục/bố cục đó trong cùng một bộ chọn không? Nếu có thì làm sao?Sử dụng bộ chọn bố cục để thay đổi các thuộc tính của con mình

Trả lời

11

Câu trả lời của Amy88 giải quyết được vấn đề, nhưng không giải quyết cụ thể việc thay đổi thuộc tính của một ViewGroup.

Giả sử bạn có thể nhấp LinearLayout với số TextView sẽ thay đổi màu khi được nhấn. Điều quan trọng là sử dụng android:duplicateParentState="true" trên quan điểm con:

<LinearLayout 
    android:duplicateParentState="true" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:orientation="vertical" > 

    <TextView 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:duplicateParentState="true" 
     android:text="@string/hello_world" 
     android:textColor="@drawable/text_selector" /> 

</LinearLayout> 

Bạn có thể chỉ chọn như trong câu trả lời của Amy88.

+0

Đây là những gì tôi đã tìm kiếm, không có 'android: duplicateParentState =" true "' bạn không thể thay đổi tất cả các con của cha mẹ. – osayilgan

7

Nếu bạn đang xác định tệp bố cục tùy chỉnh cho ListAdapter, sau đó đặt màu văn bản của TextView trong bố cục tùy chỉnh thành xml. Bố trí này nên được đặt trong một thư mục tài nguyên drawable (tạo một thư mục drawable và đặt text_selector.xml trong đó).

text_selector.xml:

<item android:state_selected="true" android:color="@android:color/black"/> 
<item android:state_focused="true" android:color="@android:color/black"/> 
<item android:state_pressed="true" android:color="@android:color/black"/> 
<item android:color="@android:color/white"/> 

Để thiết lập việc sử dụng màu sắc văn bản: android: Format = "@ drawable/text_selector"

Các ví dụ trên xml sẽ đặt màu văn bản thành màu trắng theo mặc định và sẽ đặt màu văn bản thành màu đen khi li mục st được tập trung, được chọn hoặc nhấn.

+0

im bắt buộc đóng bằng cách áp dụng các thay đổi sau mà bạn đã nói và lỗi ở đây là bạn không thể sử dụng thuộc tính android: color thuộc tính duy nhất bạn có thể sử dụng là android: drawable .......... –

+0

Sam, tôi có đã chỉnh sửa câu trả lời. Xin lỗi vì tôi đã không đề cập đến cách sử dụng xml trong màu văn bản. Hãy cố gắng bây giờ. – Ian

+0

nó vẫn không hoạt động tôi nhận ra rằng sau này và thay đổi giống như cách bạn đã nói với –

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