Tôi có một bộ ứng dụng tương tự. Tôi trích xuất các tài nguyên và mã chung cho dự án thư viện và các ứng dụng chỉ ghi đè những gì họ cần. Trong thư viện của tôi có phong cách sau đây định nghĩa:Làm cách nào để ghi đè (hoặc ẩn) các thuộc tính kiểu được xác định trong dự án thư viện Android?
<style name="ListItemText">
<item name="android:layout_toRightOf">@id/preview_image</item>
<item name="android:textStyle">bold</item>
<item name="android:textSize">@dimen/previewTextSize</item>
</style>
Như bạn có thể nhìn thấy nó chứa android:layout_toRightOf
thuộc tính như phong cách này sẽ được áp dụng cho các văn bản ở hàng ListView mà sẽ được hiển thị ở bên phải của hình ảnh trong đó hàng.
Tuy nhiên, trong một trong các ứng dụng của tôi, tôi muốn hiển thị văn bản bên dưới hình ảnh. Cách thức ListItemText
trong ứng dụng đó phải được xác định để ghi đè android:layout_toRightOf
giá trị thuộc tính và thay thế bằng android:layout_below
?
Nếu tôi xác định nó như:
<style name="ListItemText">
<item name="android:layout_below">@id/preview_image</item>
</style>
nó sẽ hiển thị văn bản bên phải và bên dưới hình ảnh, hiệu quả tổng hợp các thuộc tính của cả hai thư viện và phong cách ứng dụng XMLs.
p.s .: Một giải pháp có thể có trong vấn đề của tôi là loại bỏ android:layout_toRightOf
trong các kiểu và di chuyển nó đến bố cục xml thay thế. Sau đó, trong ứng dụng đích, bố cục này có thể được định nghĩa lại/ghi đè. Nhưng tôi đang tìm kiếm giải pháp dựa trên phong cách, vì nó có thể cung cấp cách ghi đè thuộc tính đơn giản và dễ hiểu hơn.
(Tôi cũng có thể sử dụng kiểu được kế thừa với thuộc tính parent
, nhưng điều này một lần nữa sẽ yêu cầu bố cục ghi đè trong ứng dụng mà tôi cố gắng tránh).
Tôi đang làm điều gì đó tương tự TẠI ĐÂY !!! http://stackoverflow.com/questions/17103894/overriding-referenced-style-attributes – toobsco42