2016-05-18 20 views
6

Tôi đang sử dụng thư viện của riêng mình. Trong thư viện này tôi đã xác định một số tài nguyên:Ghi đè tài nguyên trong thư viện android

colors.xml (thư viện)

<color name="colorPrimary">#000000</color> 

trong ứng dụng của tôi (mà sử dụng thư viện ở trên). Tôi muốn ghi đè màu đó chính.

colors.xml (ứng dụng)

<color name="colorPrimary">#ffffff</color> 

Tôi thực sự muốn ghi đè thuộc tính đó để thư viện (và ứng dụng của tôi) sử dụng một overrided, không phải là tuyên bố một từ thư viện. Nó hoạt động tốt nhưng Android Studio tiếp tục hét lên rằng: "Overriding @ color/colorPrimary được đánh dấu là riêng tư trong my_lib. Nếu cố ý, hãy sử dụng công cụ: ghi đè =" true ", nếu không hãy chọn một tên khác". Điều đó khiến tôi nghĩ rằng đây không phải là một cách tiếp cận tốt.

Tôi cũng cố gắng thêm các công cụ: ghi đè = "true" đến tài nguyên:

<resources xmlns:tools="http://schemas.android.com/tools" 
     tools:override="true"> 

nhưng cảnh báo vẫn còn đó.

Có sai sót với những gì tôi đang làm không ?. Tôi không thể chọn tên khác vì tôi muốn thư viện sử dụng các giá trị ghi đè.

Tôi đang sử dụng Android Studio 2.1.1 và phiên bản 2.1.0 gradle.

Cảm ơn.

+1

cách thêm thuộc tính 'ghi đè' vào phần tử màu của bạn. –

+0

Bạn nói đúng, đặt thuộc tính ghi đè cho mỗi thẻ màu hoạt động như mong đợi. Dù sao, có cách nào để làm cho thuộc tính ghi đè được áp dụng cho tất cả các thẻ màu mà không cần thiết lập thủ công cho từng thẻ không? – Paul

Trả lời

7

Di chuyển tools:override thành thẻ color.

Không có gì sai với điều này. Android Studio chỉ cảnh báo bạn, trong trường hợp nó không cố ý.

Nếu bạn nhấn alt-enter trên dòng với cảnh báo, AS sẽ cung cấp để chèn thuộc tính ghi đè cho bạn và sẽ đặt nó vào đúng vị trí.

+0

Nó hoạt động như mong đợi bây giờ. Cảm ơn. Tuy nhiên, alt-enter dường như không cung cấp để chèn thuộc tính ghi đè. – Paul

+0

Thử di chuột qua phần đánh dấu lỗi, nó sẽ cho bạn biết phím tắt. – alex

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