משאב הפריסה
קל לארגן דפים בעזרת אוספים
אפשר לשמור ולסווג תוכן על סמך ההעדפות שלך.
משאב פריסה מגדיר את הארכיטקטורה של ממשק המשתמש ב-Activity
או
רכיב של ממשק משתמש.
- מיקום הקובץ:
res/layout/filename.xml
בצבע -
שם הקובץ משמש כמזהה המשאב.
- סוג נתונים של משאב מקומפל:
- מצביע המשאב למשאב
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
מרחב השמות כמו בדוגמת התחביר הקודמת.
- רכיבים:
-
<ViewGroup>
- קונטיינר של רכיבי
View
אחרים. יש הרבה
סוגים שונים של ViewGroup
אובייקטים, וכל אחד מהם מאפשר
לציין את הפריסה של רכיבי הצאצא בדרכים שונות. סוגים שונים של
ViewGroup
אובייקטים כוללים את LinearLayout
,
RelativeLayout
ו-FrameLayout
.
לא מניחים שנגזרת של ViewGroup
מקבל תצוגות מקוננות. חלק מקבוצות התצוגה
הם הטמעות של המחלקה AdapterView
, שקובעת
הוא צאצאים רק מ-Adapter
.
מאפיינים:
android:id
- מזהה משאב שם משאב ייחודי לאלמנט, שאותו אפשר
משמש לקבלת הפניה אל
ViewGroup
מהאפליקציה. לקבלת מידע נוסף
מידע נוסף זמין בקטע ערך ל-android:id.
android:layout_height
- מאפיין או מילת מפתח. חובה. הגובה של הקבוצה,
ערך המאפיין (או
משאב מאפיינים) או מילת מפתח
(
"match_parent"
או "wrap_content"
). לקבלת מידע נוסף,
ראו את הערכים של android:layout_height
הקטע android:layout_width.
android:layout_width
- מאפיין או מילת מפתח. חובה. הרוחב של הקבוצה,
ערך המאפיין (או
משאב מאפיינים) או מילת מפתח
(
"match_parent"
או "wrap_content"
). לקבלת מידע נוסף,
ראו את הערכים של android:layout_height
הקטע android:layout_width.
ViewGroup
המחלקה הבסיסית תומכת ביותר מאפיינים, והרבה מאפיינים נוספים נתמכים על ידי כל הטמעה של
ViewGroup
כדי לציין את כל המאפיינים הזמינים:
תוכלו לעיין במסמכי העזר התואמים עבור הכיתה ViewGroup
,
לדוגמה, קוד ה-XML של LinearLayout
המאפיינים.
<View>
- רכיב בודד בממשק המשתמש, שנקרא בדרך כלל ווידג'ט. שונה
בין סוגי האובייקטים
View
יש את TextView
,
Button
ו-CheckBox
.
מאפיינים:
android:id
- מזהה משאב שם משאב ייחודי לאלמנט, שבו אפשר להשתמש כדי
לקבל מהבקשה הפניה אל
View
. לקבלת מידע נוסף
מידע נוסף זמין בקטע ערך ל-android:id.
android:layout_height
- מאפיין או מילת מפתח. חובה. גובה הרכיב, כפי
ערך של מאפיין (או
משאב מאפיינים) או מילת מפתח
(
"match_parent"
או "wrap_content"
). לקבלת מידע נוסף,
ראו את הערכים של android:layout_height
הקטע android:layout_width.
android:layout_width
- מאפיין או מילת מפתח. חובה. רוחב הרכיב, כפי
ערך של מאפיין (או
משאב מאפיינים) או מילת מפתח
(
"match_parent"
או "wrap_content"
). לקבלת מידע נוסף,
ראו את הערכים של android:layout_height
הקטע android:layout_width.
View
המחלקה הבסיסית תומכת ביותר מאפיינים, והרבה מאפיינים נוספים נתמכים על ידי כל הטמעה של
View
למידע נוסף, אפשר לקרוא את המאמר פריסות. עבור
התייחסות לכל המאפיינים הזמינים
כדאי לעיין במסמכי העזר המתאימים, למשל, מאפייני XML TextView
.
<requestFocus>
- כל רכיב שמייצג אובייקט
View
יכול לכלול את הרכיב הריק הזה,
שמאפשר להורה להתמקד במסך. אפשר להשתמש רק באחד מהפריטים האלה
רכיבים לקובץ.
<include>
- כולל קובץ פריסה לפריסה הזו.
מאפיינים:
layout
- משאב פריסה. חובה. הפניה לפריסה
משאב.
android:id
- מזהה משאב שינוי המזהה שניתן לתצוגת הרמה הבסיסית (root) בפריסה הכלולה.
android:layout_height
- מאפיין או מילת מפתח. משנה את הגובה שניתן לתצוגת הרמה הבסיסית (root)
בפריסה שכלולה. תקף רק אם מוצהר גם על
android:layout_width
.
android:layout_width
- מאפיין או מילת מפתח. מבטל את הרוחב שניתן לתצוגת הרמה הבסיסית (root) במקטע
בפריסה שכלולה. תקף רק אם מוצהר גם על
android:layout_height
.
אפשר לכלול ב<include>
מאפייני פריסה אחרים ש
שנתמכות על ידי רכיב הבסיס בפריסה שכלולה, והן מבטלות את אלה שהוגדרו
רכיב ברמה הבסיסית (root).
זהירות: אם רוצים לשנות את מאפייני הפריסה באמצעות
התג <include>
, חובה לשנות את שניהם
android:layout_height
ו-android:layout_width
בסדר עבור
ומאפייני פריסה אחרים ייכנסו לתוקף.
דרך נוספת לכלול פריסה היא להשתמש ב-ViewStub
, מודל קל
בתצוגה שלא תופסת שטח פריסה עד שתנפחו אותה באופן מפורש. כשעושים זאת, היא כוללת
מוגדר לפי המאפיין android:layout
שלו. לקבלת מידע נוסף על השימוש ב-ViewStub
, אפשר לקרוא את המאמר טעינה
צפיות לפי דרישה.
<merge>
- רכיב בסיס חלופי שלא מצויר בהיררכיית הפריסה. שימוש במחרוזת הזו
רכיב השורש שימושי כאשר יודעים שהפריסה הזו ממוקמת בפריסה
כבר מכיל את ההורה המתאים
View
כדי להכיל את הצאצאים של
רכיב <merge>
.
האפשרות הזאת שימושית במיוחד אם אתם מתכננים לכלול את הפריסה הזו
בקובץ פריסה אחר באמצעות הפקודה <include>
לפריסה הזו לא נדרש מאגר ViewGroup
שונה. לקבלת מידע נוסף
למידע על מיזוג פריסות, אפשר לקרוא את המאמר שימוש חוזר בפריסות עם <include>.
ערך של 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);
}
- למידע נוסף:
-
דוגמאות התוכן והקוד שבדף הזה כפופות לרישיונות המפורטים בקטע רישיון לתוכן. Java ו-OpenJDK הם סימנים מסחריים או סימנים מסחריים רשומים של חברת Oracle ו/או של השותפים העצמאיים שלה.
עדכון אחרון: 2024-08-21 (שעון UTC).
[{
"type": "thumb-down",
"id": "missingTheInformationINeed",
"label":"חסרים לי מידע או פרטים"
},{
"type": "thumb-down",
"id": "tooComplicatedTooManySteps",
"label":"התוכן מורכב מדי או עם יותר מדי שלבים"
},{
"type": "thumb-down",
"id": "outOfDate",
"label":"התוכן לא עדכני"
},{
"type": "thumb-down",
"id": "translationIssue",
"label":"בעיה בתרגום"
},{
"type": "thumb-down",
"id": "samplesCodeIssue",
"label":"בעיה בדוגמאות/בקוד"
},{
"type": "thumb-down",
"id": "otherDown",
"label":"סיבה אחרת"
}]
[{
"type": "thumb-up",
"id": "easyToUnderstand",
"label":"התוכן קל להבנה"
},{
"type": "thumb-up",
"id": "solvedMyProblem",
"label":"התוכן עזר לי לפתור בעיה"
},{
"type": "thumb-up",
"id": "otherUp",
"label":"סיבה אחרת"
}]
{
"last_modified": "עדכון אחרון: 2024-08-21 (שעון UTC).",
"state": ""
}