Berikut adalah contoh app
namespace yang saya lihat dari sebuah res/menu/main.xml
file
<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>
Apa tujuan app
melayani namespace? Apakah ini namespace Android XML "standar"? Apakah opsi nilai yang sama tersedia untuk atribut yang sama ditempatkan di dua ruang nama yang berbeda (misalnya app:showAsAction
dan android:showAsAction
).
Dari dokumen :
android:showAsAction=["ifRoom" | "never" | "withText" | "always" | "collapseActionView"]
yaitu, apakah baris dalam contoh di atas berarti sesuatu yang lain jika atributnya sebaliknya:
android:showAsAction="never"
Sepertinya ini semacam mekanisme "subklasifikasi", tetapi sepertinya saya tidak dapat menemukan dokumentasi nyata di app
namespace dari sumber Google / Android.
showAsAction
bawah namespace kustom berarti bahwa itu berfungsi seperti yang diharapkan pada platform yang lebih baru dan diabaikan pada yang lebih lama?android:
versi.showAsName
atribut tidak didukung di perpustakaan tua, bagaimana menggunakan kustom namespace memungkinkan platform untuk mengetahui berbagai pilihan yang mungkin nilai (ifRoom
,never
, dll), dan tahu bagaimana menafsirkan pilihan mereka? Saya berasumsi bahwa "atribut yang tidak ada" berarti atribut yang tidak ada implementasi di perpustakaan. Bertukarandroid:
untukapp:
hampir tidak tampak seperti solusi yang lengkap. Apakah saya melewatkan sesuatu?app:showAsName
) dan semua nilai yang mungkin dimasukkan dalam aplikasi Anda saat Anda menyertakanappcompat-v7
perpustakaan (yang mendefinisikannya dalamattrs.xml
file -nya ). 2) Pustaka AppCompat (khusus, ActionMenuView yang digunakan secara otomatis saat Anda menggunakanActionBarActivity
) mem-parsing dan menggunakanapp:showAsAction
untuk menampilkan item dengan benar dengan cara yang sama di semua level API. Tentunya memang membutuhkan XML dan kode untuk bekerja bersama.Anda bisa mendapatkan penjelasan dari tautan ini
Namespace XML
sumber