2016-03-29 14 views
5

Trong ví dụ về nhà phát triển Android, blog, v.v., tôi đã thấy nhiều tiền tố cho các giá trị thuộc tính kiểu. Ai đó có thể mô tả khi nào sử dụng cái gì? Ví dụ, sự khác biệt giữa 3 trường hợp này là gì?Kiểu Android - sự khác biệt giữa @ kiểu, android :, @android: kiểu, v.v.

parent="@android:style/TextAppearance" 
parent="TextAppearance.AppCompat" 
parent="@style/TextAppearance.AppCompat" 

Sự khác nhau giữa 2 trường hợp này là gì?

<item name="colorControlNormal">@color/white</item> 
<item name="android:colorControlNormal">@color/white</item> 

Trả lời

4

Không có bất kỳ tiền tố nào tham chiếu đến kiểu được đặt tên trên cùng một tệp.

@Style tham chiếu tệp dự án style.xml của bạn.

@android: kiểu dáng tham chiếu được xác định Kiểu Android.

Tìm hiểu thêm về Style ResourceStyle and Themes.

Giới thiệu colorControlNormal vs android: colorControlNormal là cùng một lời giải thích. Nếu bạn sử dụng controlColorNormal bạn đang xác định màu được áp dụng cho các điều khiển khung trong trạng thái bình thường trong ứng dụng của bạn. Nếu bạn sử dụng android: colorControlNormal, bạn sẽ ghi đè lên màu mặc định được áp dụng cho các điều khiển khung của hệ thống.

+0

Điều này không đúng đối với AppCompat. – technophyle

2

Bạn có thể nghĩ @ là báo hiệu rằng tài nguyên được đặt tên sắp xuất hiện.

@type/name xác định tài nguyên loại type (chuỗi, màu sắc, bố cục, kiểu, v.v.) với tên name được xác định trong ứng dụng sắp xuất hiện.

@+id/name xác định tài nguyên id được gọi là name sẽ được tạo nếu nó chưa tồn tại (trong khi @id chỉ đề cập đến id đã tồn tại).

@android:type/name có nghĩa là tài nguyên được đặt tên là một phần của nền tảng Android sắp xuất hiện (đó là không phải được xác định trong ứng dụng - được cung cấp bởi thiết bị).

Đối với bố mẹ kiểu, kiểu @ là tùy chọn. Bạn có thể tham khảo các kiểu trực tiếp theo tên. Đó là thừa vì bạn không thể lấy được một phong cách từ bất kỳ thứ gì khác ngoài kiểu khác.

+0

Cảm ơn. Bạn có thể vui lòng xây dựng trên colorControlNormal vs android: colorControlNormal part. Tôi nên sử dụng cái nào trong style.xml của mình? – clocksmith

+1

Nó không phải là một trong những bạn * nên * sử dụng, đó là về việc xác định một trong những chính xác cho trường hợp của bạn. Nếu đó là tài nguyên bạn tự định nghĩa, thì chỉ cần sử dụng tên đó. Nếu đó là một cái gì đó được xác định bởi nền tảng Android, bạn cần tiền tố android. –

+0

Giống như Doug đã nói. Xem bài đăng đã chỉnh sửa của tôi ở trên. –

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