منبع چیدمان
با مجموعهها، منظم بمانید
ذخیره و طبقهبندی محتوا براساس اولویتهای شما.
یک منبع طرحبندی، معماری UI را در یک Activity یا جزء یک UI تعریف میکند.
- محل فایل:
-
res/layout/ filename .xml
نام فایل به عنوان شناسه منبع استفاده می شود. - نوع داده منبع کامپایل شده:
- اشاره گر منبع به یک منبع
View (یا زیر کلاس). - مرجع منبع:
- در جاوا:
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 نماهای تودرتو را می پذیرد. برخی از گروههای view پیادهسازیهای کلاس AdapterView هستند که فرزندان خود را فقط از یک Adapter تعیین میکنند.
ویژگی ها:
-
android:id - شناسه منبع یک نام منبع منحصربهفرد برای عنصر، که میتوانید از آن برای دریافت ارجاع به
ViewGroup از برنامه خود استفاده کنید. برای اطلاعات بیشتر به بخش Value for android:id مراجعه کنید. -
android:layout_height - بعد یا کلمه کلیدی . مورد نیاز . ارتفاع برای گروه، به عنوان یک مقدار بعد (یا منبع بعد ) یا یک کلمه کلیدی (
"match_parent" یا "wrap_content" ). برای اطلاعات بیشتر، به بخش Values for android:layout_height و android:layout_width مراجعه کنید. -
android:layout_width - بعد یا کلمه کلیدی . مورد نیاز . عرض گروه، به عنوان یک مقدار ابعاد (یا منبع بعد ) یا یک کلمه کلیدی (
"match_parent" یا "wrap_content" ). برای اطلاعات بیشتر، به بخش Values for android:layout_height و android:layout_width مراجعه کنید.
کلاس پایه ViewGroup از ویژگی های بیشتری پشتیبانی می کند و بسیاری دیگر توسط هر پیاده سازی ViewGroup پشتیبانی می شود. برای ارجاع همه ویژگیهای موجود، به مستندات مرجع مربوطه برای کلاس ViewGroup ، برای مثال، ویژگیهای LinearLayout XML مراجعه کنید.
-
<View> - یک مؤلفه UI مجزا که معمولاً به عنوان ویجت نامیده می شود. انواع مختلف اشیاء
View عبارتند از TextView ، Button و CheckBox . ویژگی ها:
-
android:id - شناسه منبع یک نام منبع منحصربهفرد برای عنصر، که میتوانید از آن برای دریافت ارجاع به
View از برنامه خود استفاده کنید. برای اطلاعات بیشتر به بخش Value for android:id مراجعه کنید. -
android:layout_height - بعد یا کلمه کلیدی مورد نیاز . ارتفاع عنصر، به عنوان یک مقدار ابعاد (یا منبع بعد ) یا یک کلمه کلیدی (
"match_parent" یا "wrap_content" ). برای اطلاعات بیشتر، به بخش Values for android:layout_height و android:layout_width مراجعه کنید. -
android:layout_width - بعد یا کلمه کلیدی . مورد نیاز . عرض عنصر، به عنوان یک مقدار ابعاد (یا منبع ابعاد ) یا یک کلمه کلیدی (
"match_parent" یا "wrap_content" ). برای اطلاعات بیشتر، به بخش Values for android:layout_height و android:layout_width مراجعه کنید.
کلاس پایه View از ویژگی های بیشتری پشتیبانی می کند و بسیاری دیگر توسط هر پیاده سازی View پشتیبانی می شوند. برای اطلاعات بیشتر، Layouts را بخوانید. برای مرجعی از تمام ویژگیهای موجود، به مستندات مرجع مربوطه، به عنوان مثال، ویژگیهای TextView XML مراجعه کنید.
-
<requestFocus> - هر عنصری که یک شی
View را نشان میدهد میتواند شامل این عنصر خالی باشد که تمرکز اولیه والد آن را روی صفحه نمایش میدهد. شما می توانید تنها یکی از این عناصر را در هر فایل داشته باشید. -
<include> - شامل یک فایل طرح بندی در این طرح بندی است.
ویژگی ها:
-
layout - منبع چیدمان مورد نیاز . ارجاع به یک منبع طرح بندی.
-
android:id - شناسه منبع شناسه داده شده به نمای ریشه در طرح بندی ارائه شده را لغو می کند.
-
android:layout_height - بعد یا کلمه کلیدی . ارتفاع داده شده به نمای ریشه در طرح بندی ارائه شده را لغو می کند. فقط در صورتی موثر است که
android:layout_width نیز اعلام شده باشد. -
android:layout_width - بعد یا کلمه کلیدی عرض داده شده به نمای ریشه در طرح بندی ارائه شده را لغو می کند. فقط در صورتی موثر است که
android:layout_height نیز اعلام شده باشد.
میتوانید هر ویژگی طرحبندی دیگری را در <include> که توسط عنصر ریشه در طرحبندی موجود پشتیبانی میشود، اضافه کنید و آنها را باطل میکنند که در عنصر ریشه تعریف شدهاند.
احتیاط: اگر میخواهید با استفاده از تگ <include> ویژگیهای layout را لغو کنید، باید هر دو android:layout_height و android:layout_width را لغو کنید تا سایر ویژگیهای طرحبندی اعمال شوند.
راه دیگر برای گنجاندن یک طرح، استفاده از ViewStub است: یک نمای سبک وزن که تا زمانی که به صراحت آن را زیاد نکنید، فضای طرح بندی را مصرف نمی کند. وقتی این کار را انجام می دهید، شامل یک فایل طرح بندی است که با ویژگی android:layout آن تعریف شده است. برای اطلاعات بیشتر در مورد استفاده از ViewStub ، بارگذاری نماهای درخواستی را بخوانید.
-
<merge> - یک عنصر ریشه جایگزین که در سلسله مراتب طرح بندی ترسیم نشده است. استفاده از آن به عنوان عنصر ریشه زمانی مفید است که می دانید این طرح بندی در طرحی قرار داده شده است که از قبل حاوی
View والد مناسب برای حاوی فرزندان عنصر <merge> است. این به ویژه زمانی مفید است که میخواهید این طرحبندی را با استفاده از <include> در فایل طرحبندی دیگری قرار دهید و این طرحبندی به محفظه ViewGroup دیگری نیاز ندارد. برای اطلاعات بیشتر درباره ادغام طرحبندیها، استفاده مجدد از طرحبندیها را با <include> بخوانید.
ارزش برای android:id
برای مقدار ID، شما معمولاً از این فرم نحوی استفاده می کنید: "@+id/ name " ، همانطور که در مثال زیر نشان داده شده است. نماد مثبت، + ، نشان می دهد که این یک شناسه منبع جدید است، و ابزار aapt یک عدد صحیح منبع جدید در کلاس R.java ایجاد می کند، اگر قبلا وجود نداشته باشد.
<TextView android:id="@+id/nameTextbox"/>
نام nameTextbox اکنون یک شناسه منبع متصل به این عنصر است. سپس می توانید به TextView که شناسه در جاوا به آن مرتبط است مراجعه کنید:
کاتلین
val textView: TextView? = findViewById(R.id.nameTextbox)
جاوا
TextView textView = findViewById(R.id.nameTextbox);
این کد شی TextView را برمی گرداند.
با این حال، اگر قبلاً یک منبع ID تعریف کردهاید، و قبلاً از آن استفاده نشده است، میتوانید با حذف نماد مثبت در مقدار android:id آن شناسه را به عنصر View اعمال کنید.
مقادیر برای 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() بارگذاری میکند:
کاتلین
public override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.main_activity)
} جاوا
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main_activity);
} - همچنین ببینید:
محتوا و نمونه کدها در این صفحه مشمول پروانههای توصیفشده در پروانه محتوا هستند. جاوا و OpenJDK علامتهای تجاری یا علامتهای تجاری ثبتشده Oracle و/یا وابستههای آن هستند.
تاریخ آخرین بهروزرسانی 2025-07-29 بهوقت ساعت هماهنگ جهانی.
[null,null,["تاریخ آخرین بهروزرسانی 2025-07-29 بهوقت ساعت هماهنگ جهانی."],[],[]]