Dưới đây là một ví dụ về app
namespace mà tôi đã nhìn thấy từ một tập tin res/menu/main.xml
Không gian tên Android XML 'ứng dụng' là gì?
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
tools:context=".MainActivity" >
<item android:id="@+id/action_settings"
android:title="@string/action_settings"
android:orderInCategory="100"
app:showAsAction="never" />
</menu>
mục đích gì không gian tên app
phục vụ? Đó có phải là một không gian tên "Android" chuẩn "không?" Các tùy chọn giá trị giống nhau có sẵn cho cùng một thuộc tính được đặt trong hai không gian tên khác nhau (ví dụ: app:showAsAction
và android:showAsAction
).
Từ docs: android:showAsAction=["ifRoom" | "never" | "withText" | "always" | "collapseActionView"]
tức, sẽ dòng trong ví dụ trên có nghĩa là cái gì khác nếu thuộc tính là thay vì:
android:showAsAction="never"
Nó gần như có vẻ như nó có thể là một số loại " phân lớp "cơ chế, nhưng tôi dường như không thể tìm thấy bất kỳ tài liệu thực nào về không gian tên app
từ nguồn Google/Android.
Cảm ơn bạn! Tôi vui mừng cuối cùng đã tìm thấy một đề cập đến điều này trong tài liệu. Tuy nhiên, một câu hỏi tiếp theo. Các tài liệu của thanh tác vụ trong liên kết của bạn cho biết: "Lưu ý rằng thuộc tính showAsAction ở trên sử dụng một không gian tên tùy chỉnh được xác định trong thẻ
Vậy điều gì sẽ xảy ra trên các thiết bị cũ hơn mà các thuộc tính không tồn tại trong khung công tác? Nó chưa rõ ràng với tôi như thế nào xác định một không gian tên tùy chỉnh hoạt động xung quanh thiếu hỗ trợ cho một thuộc tính. Việc khai báo 'showAsAction' trong một không gian tên tùy chỉnh có nghĩa là nó hoạt động như mong đợi trên các nền tảng mới hơn và bị bỏ qua trên các nền tảng cũ hơn? – coder123
Thuộc tính không tồn tại được bỏ qua âm thầm. Khi bạn tạo thuộc tính tùy chỉnh, bạn đảm bảo rằng thuộc tính tùy chỉnh sẽ tồn tại trong thời gian chạy (rõ ràng: định nghĩa của nó được bao gồm trong ứng dụng của bạn). Do đó thư viện hỗ trợ sử dụng các thuộc tính tùy chỉnh để mã tùy chỉnh của chúng cho các menu xây dựng có thể sử dụng một đường dẫn mã duy nhất hoạt động trên tất cả các phiên bản API, về cơ bản thay thế bất kỳ nhu cầu nào sử dụng phiên bản 'android:'. – ianhanniballake