משאב פריסה מגדיר את הארכיטקטורה של ממשק המשתמש ב-Activity
או
רכיב של ממשק משתמש.
- מיקום הקובץ:
- שם הקובץ משמש כמזהה המשאב.
- סוג נתונים של משאב מקומפל:
- מצביע המשאב למשאב
View
(או מחלקה משנית) - הפניה למשאבים:
-
ב-Java:
R.layout.filename
ב-XML:@[package:]layout/filename
- תחביר:
-
<?xml version="1.0" encoding="utf-8"?> <ViewGroup xmlns:android="http://schemas.android.com/apk/res/android" android:id="@[+][package:]id/resource_name" android:layout_height=["dimension" | "match_parent" | "wrap_content"] android:layout_width=["dimension" | "match_parent" | "wrap_content"] [ViewGroup-specific attributes] > <View android:id="@[+][package:]id/resource_name" android:layout_height=["dimension" | "match_parent" | "wrap_content"] android:layout_width=["dimension" | "match_parent" | "wrap_content"] [View-specific attributes] > <requestFocus/> </View> <ViewGroup > <View /> </ViewGroup> <include layout="@layout/layout_resource"/> </ViewGroup>
הערה: הרכיב הבסיסי יכול להיות
ViewGroup
,View
או רכיב<merge>
, אבל יכול להיות רק רכיב שורש אחד והוא חייב להכיל את המאפייןxmlns:android
עםandroid
מרחב השמות כמו בדוגמת התחביר הקודמת. - רכיבים:
-
ערך של android:id
בערך המזהה, משתמשים בדרך כלל בטופס התחביר הבא:
"@+id/name"
, כמו בדוגמה הבאה. סמל הפלוס,+
, מציין שמדובר במזהה משאב חדש, והכליaapt
יוצר מספר שלם חדש של משאב במחלקהR.java
, אם הוא לא קיים כבר.<TextView android:id="@+id/nameTextbox"/>
השם
nameTextbox
הוא עכשיו מזהה משאב שמצורף לרכיב הזה. לאחר מכן אפשר להתייחס אלTextView
שאליו המזהה משויך ב-Java:Kotlin
val textView: TextView? = findViewById(R.id.nameTextbox)
Java
TextView textView = findViewById(R.id.nameTextbox);
הקוד הזה מחזיר את האובייקט
TextView
.עם זאת, אם כבר הגדרתם משאב של מזהה, והוא לא כבר נעשה שימוש בתכונה הזו, ניתן להחיל את המזהה הזה על רכיב
View
על ידי החרגת המאפיין סימן פלוס בערךandroid:id
.ערכים עבור android:layout_height ו android:layout_width
ערכי הגובה והרוחב מבוטאים באמצעות כל אחד מהערכים הבאים: מאפיין יחידות הנתמכות ב-Android (px, dp, sp, pt, in, mm) או באמצעות מילות המפתח הבאות:
ערך תיאור match_parent
מגדיר את המאפיין כך שיתאים למאפיין של רכיב ההורה. נוסף ברמת API 8 אל להוציא משימוש את fill_parent
.wrap_content
מגדיר את המאפיין רק לגודל הנדרש כדי להתאים לתוכן של הרכיב הזה. רכיבי תצוגה בהתאמה אישית
אפשר ליצור
View
ו-ViewGroup
בהתאמה אישית ולהחיל אותם על הפריסה בדיוק כמו לפריסה רגילה לרכיב מסוים. אפשר גם לציין את המאפיינים שנתמכים ברכיב ה-XML. לקבלת מידע נוסף, מידע נוסף זמין בקטע יצירת רכיבים של תצוגה בהתאמה אישית. - דוגמא:
- קובץ XML נשמר ב-
res/layout/main_activity.xml
:<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <TextView android:id="@+id/text" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Hello, I am a TextView" /> <Button android:id="@+id/button" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Hello, I am a Button" /> </LinearLayout>
קוד האפליקציה הזה טוען את הפריסה של
Activity
בonCreate()
method: -
Kotlin
public override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.main_activity) }
Java
public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main_activity); }
- למידע נוסף:
res/layout/filename.xml
בצבע