เหตุใดจึงต้องใช้บรรทัดนี้ในไฟล์เลย์เอาต์ xml
xmlns:android="http://schemas.android.com/apk/res/android"
เหตุใดจึงต้องใช้บรรทัดนี้ในไฟล์เลย์เอาต์ xml
xmlns:android="http://schemas.android.com/apk/res/android"
คำตอบ:
ใน XML, xmlns ประกาศ Namespace ที่จริงแล้วเมื่อคุณ:
<LinearLayout android:id>
</LinearLayout>
แทนที่จะเรียกandroid:id
ใช้ xml จะใช้http://schemas.android.com/apk/res/android:idเพื่อให้มีความเป็นเอกลักษณ์ โดยทั่วไปหน้านี้ไม่มีอยู่ (เป็น URI ไม่ใช่ URL) แต่บางครั้งก็เป็น URL ที่อธิบายเนมสเปซที่ใช้
เนมสเปซมีการใช้งานเหมือนกันกับชื่อแพ็คเกจในแอปพลิเคชัน Java
นี่คือคำอธิบาย
Uniform Resource Identifier (URI)
Uniform Resource Identifier (URI) คือสตริงของอักขระที่ระบุอินเทอร์เน็ตอินเทอร์เน็ต
URI ที่พบบ่อยที่สุดคือ Uniform Resource Locator (URL) ซึ่งระบุที่อยู่โดเมนอินเทอร์เน็ต ประเภทอื่นที่ไม่ใช่ URI ทั่วไปคือ Universal Resource Name (URN)
ในตัวอย่างของเราเราจะใช้ URL เท่านั้น
android:layout_width
แทนเพียงlayout_width
?
เพื่อให้เข้าใจว่าทำไมxmlns:android=“http://schemas.android.com/apk/res/android”
ต้องเป็นคนแรกในไฟล์ xml เลย์เอาต์เราจะเข้าใจส่วนประกอบโดยใช้ตัวอย่าง
Sample
::
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/container" >
</FrameLayout>
ตัวบ่งชี้ทรัพยากรสม่ำเสมอ (URI) :
เช่น: http://schemas.android.com/apk/res/android:id
คือ URI ที่นี่
xmlns:android
อธิบาย android namespacetextview
วิดเจ็ตของเราเองด้วยคุณสมบัติที่แตกต่างเมื่อเทียบกับ android textview
, android namespace ช่วยแยกแยะระหว่างtextview
วิดเจ็ตที่กำหนดเองและ android ของเรา
textview
วิดเจ็ตxmlns อ้างถึงXML เนมสเปซ
เมื่อใช้คำนำหน้าใน XML จะต้องกำหนดเนมสเปซที่เรียกว่าสำหรับคำนำหน้า namespace ถูกกำหนดโดยแอตทริบิวต์ xmlns ในแท็กเริ่มต้นขององค์ประกอบ การประกาศ namespace มีไวยากรณ์ดังต่อไปนี้ xmlns: คำนำหน้า = "URI"
บันทึก : เนมสเปซ URI ไม่ได้ถูกใช้โดยตัวแยกวิเคราะห์เพื่อค้นหาข้อมูล
วัตถุประสงค์คือเพื่อให้เนมสเปซมีชื่อเฉพาะ อย่างไรก็ตามบ่อยครั้งที่ บริษัท ต่างๆใช้เนมสเปซเป็นตัวชี้ไปยังเว็บเพจที่มีข้อมูลเนมสเปซ
นี่เป็นเพียงการประกาศชื่อพื้นที่ XML เราใช้ Space Name นี้เพื่อระบุว่าแอตทริบิวต์ที่แสดงด้านล่างเป็นของ Android ดังนั้นพวกเขาจึงเริ่มต้นด้วย " android: "
คุณสามารถสร้างแอตทริบิวต์ที่กำหนดเองของคุณได้ ดังนั้นเพื่อป้องกันความขัดแย้งของชื่อโดยที่ 2 แอตทริบิวต์นั้นมีชื่อเหมือนกัน แต่ทำงานต่างกันเราจึงเพิ่มคำนำหน้า " android: " เพื่อบ่งบอกว่าสิ่งเหล่านี้เป็นคุณลักษณะของ Android
ดังนั้นการประกาศ Space Name นี้จะต้องรวมอยู่ในแท็กเปิดของมุมมองรูทของไฟล์ XML ของคุณ
xmlns: android กำหนดเนมสเปซ Android ควรตั้งค่าแอตทริบิวต์นี้เป็น "http://schemas.android.com/apk/res/android" เสมอ
อ้างอิงhttp://developer.android.com/guide/topics/manifest/manifest-element.html
ในการใส่คำของคนธรรมดา:
ไม่มี xmlns: android =” http://schemas.android.com/apk/res/android ” แท็กที่เกี่ยวข้องกับ Android จะไม่ถูกจดจำในเอกสาร xml ของเลย์เอาต์ของเรา
ใน XML ชื่อองค์ประกอบถูกกำหนดโดยนักพัฒนา ซึ่งมักส่งผลให้เกิดข้อขัดแย้งเมื่อพยายามผสมผสานเอกสาร XML จากแอปพลิเคชัน XML ที่แตกต่างกัน ผู้ใช้หรือแอปพลิเคชัน XML จะไม่ทราบวิธีจัดการความแตกต่างเหล่านี้ ความขัดแย้งของชื่อใน XML สามารถหลีกเลี่ยงได้อย่างง่ายดายโดยใช้คำนำหน้าชื่อ เมื่อใช้ส่วนนำหน้าใน XML จะต้องกำหนดเนมสเปซสำหรับส่วนนำหน้าเนมสเปซสามารถกำหนดได้โดยแอตทริบิวต์ xmlns ในแท็กเริ่มต้นขององค์ประกอบการประกาศเนมสเปซมีไวยากรณ์ต่อไปนี้ xmlns: คำนำหน้า = "URI"
xmlns:android="http://schemas.android.com/apk/res/android"
นี่คือรูปแบบของ xmlns: android = "@ + / id" ตอนนี้เพื่ออ้างอิงมันเราใช้เป็นตัวอย่าง
android:layout_width="wrap_content"
android:text="Hello World!"
อีก xmlns คือ
xmlns:app="http://schemas.android.com/apk/res-auto"
ซึ่งอยู่ในรูปแบบของ xmlns: app = "@ + / id" และการใช้งานจะได้รับด้านล่าง
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
ฉันคิดว่ามันชัดเจนกับ namespace ในขณะที่เราสามารถสร้างคุณลักษณะของเราเองและถ้าผู้ใช้ระบุคุณลักษณะเช่นเดียวกับ Android มันหลีกเลี่ยงความขัดแย้งของ namespace
xmlns: androidนี่คือแท็กเริ่มต้นสำหรับกำหนด android namespace ใน Android นี่คือการประชุม standerd ที่กำหนดโดยนักพัฒนา android ของ google เมื่อคุณใช้และเค้าโครงเริ่มต้นหรือ custome แล้วต้องใช้ namespace นี้
กำหนดเนมสเปซ Android ควรตั้งค่าแอตทริบิวต์นี้เป็น " http://schemas.android.com/apk/res/android " เสมอ
จากเอกสารองค์ประกอบ<manifes>
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns : เป็นชื่อพื้นที่ xml และURL: " http://schemas.android.com/apk/res/android " นั้นไม่มีอะไรนอกจาก
XSDซึ่งเป็น [นิยาม XML schema]: ซึ่งใช้กำหนดกฎสำหรับไฟล์ XML
ตัวอย่าง:
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="4dp"
android:hint="User Name"
/>
</LinearLayout>
ให้ฉันอธิบายว่ากฎประเภทใด .
กฎประเภทดังกล่าวมีการกำหนดไว้ใน XML XSD: " http://schemas.android.com/apk/res/android "
สายไปหน่อย แต่ฉันหวังว่านี่จะช่วยคุณได้
เป็นการประกาศพื้นที่ชื่อ XML เพื่อระบุว่าแอตทริบิวต์ที่อยู่ในกลุ่มมุมมองที่ชะลอตัวลงนั้นเกี่ยวข้องกับ Android