2009-08-27 44 views
49

Khi tôi gọi setEnabled(false) cho đối tượng TextView thì màu văn bản không thay đổi. Tôi hy vọng nó sẽ được thay đổi thành màu xám. Nếu tôi xóa dòng android:textColor trong tệp XML của tôi, nó sẽ trở lại bình thường.Màu chế độ xem văn bản Android không thay đổi khi bị tắt

Bất kỳ ý tưởng nào?

+0

Dưới đây là giải pháp: D http://stackoverflow.com/questions/4692642/android-customized-button-changing-text-color – cesards

+0

Bạn phải tự thiết lập các màu sắc văn bản để bất cứ điều gì bạn muốn. Ít nhất đó là những gì tôi phải làm. – MattC

Trả lời

121

Tôi nghĩ điều đang xảy ra là vì bạn đang ghi đè màu văn bản mặc định, nó không kế thừa các kiểu văn bản màu khác. Hãy thử tạo một ColorStateList cho nó và đặt thuộc tính textColor thành nó thay vì màu.

Trong một tập tin màu (ví dụ res/màu/example.xml):

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:state_enabled="false" android:color="@color/disabled_color" /> 
    <item android:color="@color/normal_color"/> 
</selector> 

sau đó trong cách bố trí của bạn:

<TextView 
    android:text="whatever text you want" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:textColor="@color/example" /> 

Lưu ý, tôi đã không làm điều này trong một thời gian và Tôi đang gõ rất nhiều điều này từ bộ nhớ, vì vậy nó có thể cần một chút tinh chỉnh. Các tài liệu ColorStateList (được liên kết ở trên) có một ví dụ rõ ràng hơn cho tệp XML màu.

+1

xin cảm ơn, điều này đã giúp ích rất nhiều. – Matthias

+0

Vui lòng trợ giúp :) –

+0

Tuyệt vời, cảm ơn! – Tomasz

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