2012-04-27 35 views
5

Tôi có hình dạng ( rect_shape.xml) vẽ phác thảo nét vẽ trong mỗi mục của một khung nhìn danh sách ( listview_style.xml). Đường viền này phải có màu giống như màu văn bản mặc định của chủ đề hiện tại.Cách lấy (tham chiếu) màu văn bản mặc định của chủ đề hiện tại trong XML

Có cách nào, trong XML, để đặt giá trị android: color của stroke thành màu văn bản hiện tại?

Tôi đã nhìn thấy một số câu hỏi tương tự (như How to get my own defined attribute value in my style) quanh đây mà cố gắng đặt thuộc tính riêng, nhưng tôi không nghĩ rằng đây là những gì tôi muốn. Nhưng dù sao tôi đã thử điều đó nhưng tôi không thể đặt giá trị android: color thành thuộc tính được xác định của riêng mình (android:color="?custom_stroke_color" ném InflateException).

Vì người dùng có thể chuyển đổi giữa Chủ đề động, một màu được xác định trước (hoặc tham chiếu đến tài nguyên màu, ví dụ: @color/white) trong rect_shape.xml không phải là một tùy chọn.

Đánh giá cao bất kỳ sự giúp đỡ ...

rect_shape.xml

<shape xmlns:android="http://schemas.android.com/apk/res/android" 
android:shape="rectangle" > 

<stroke android:width="3dp" 
<!-- should be the current default text color --> 
    android:color="#FFF" /> 

<solid/> 
... 
</shape> 

listview_style.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="match_parent" 
android:layout_height="wrap_content" 
android:background="@drawable/rect_shape" > 
... 
</LinearLayout> 

themes.xml

<resources> 
<style name="DarkTheme" parent="@style/Theme.Sherlock"> 
<!-- default text color is white --> 
... 
</style> 
<style name="LightTheme" parent="@style/Theme.Sherlock.Light"> 
<!-- default text color is black--> 
... 
</style> 
</resources> 

Trả lời

0

Truy cập các thuộc tính theo chủ đề trong các tệp XML có thể kéo chỉ có sẵn trong Android 5.0 trở lên.

Xem This issue

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