android-layout - ما هي مساحة أسماء تطبيقات XML لنظام Android "التطبيق"؟




xml-namespaces android-tools-namespace (2)

مساحة اسم app ليست خاصة بمكتبة ، ولكنها تُستخدم مع جميع السمات المحددة في تطبيقك ، سواء أكانت عن طريق الكود أو المكتبات التي تستوردها ، مما يجعل مساحة اسم عمومية واحدة للسمات المخصصة - أي سمات غير محددة بواسطة Android النظام.

في هذه الحالة ، تستخدم مكتبة appcompat-v7 سمات مخصصة تعكس أنظمة android: مساحة الاسم لدعم الإصدارات السابقة من android (على سبيل المثال: android:showAsAction تم إضافته فقط في API11 ، ولكن app:showAsAction (يتم تقديمه كجزء من التطبيق الخاص بك) يعمل على جميع مستويات API التي يقوم بها تطبيقك) - من الواضح أن استخدام android:showAsAction لن يعمل على مستويات API حيث لا يتم تعريف تلك السمة.

في ما يلي مثال لمساحة اسم app التي شاهدتها من ملف res/menu/main.xml

<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>

ما الغرض الذي تخدمه مساحة اسم app ؟ هل هو مساحة اسم XML لنظام التشغيل Android "قياسية"؟ هل تتوفر نفس خيارات القيمة لنفس السمة الموضوعة في مسألتين مختلفتين (على سبيل المثال app:showAsAction و android:showAsAction ).

من docs : android:showAsAction=["ifRoom" | "never" | "withText" | "always" | "collapseActionView"] android:showAsAction=["ifRoom" | "never" | "withText" | "always" | "collapseActionView"]

بمعنى ، إذا كان السطر في المثال أعلاه يعني شيئًا آخر إذا كانت السمة بدلاً من ذلك:

android:showAsAction="never"

يبدو الأمر كأنه قد يكون نوعًا ما من آلية "التصنيف الفرعي" ، ولكن لا يمكنني العثور على أي وثائق حقيقية على مساحة اسم app من مصادر Google / Android.


android:gravity -> لتعيين خطورة محتوى العرض المستخدم عليه.

android:layout_gravity -> لتعيين جاذبية العرض أو android:layout_gravity





android xml android-layout xml-namespaces android-tools-namespace