অন্তর্ভুক্ত ট্যাগ
<include>
ট্যাগ আপনি একাধিক ফাইল মধ্যে আপনার লেআউট বিভক্ত করতে দেয়: এটা সঙ্গে তার আচরণ করতে সাহায্য করে জটিল বা সুদীর্ঘ ইউজার ইন্টারফেস।
ধরুন আপনি নীচে দুটি অন্তর্ভুক্ত ফাইল ব্যবহার করে আপনার জটিল বিন্যাসটি বিভক্ত করেছেন:
শীর্ষ_ত্যাগী_অ্যাক্টিভিটি.এক্সএমএল :
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/layout1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<!-- First include file -->
<include layout="@layout/include1.xml" />
<!-- Second include file -->
<include layout="@layout/include2.xml" />
</LinearLayout>
তাহলে আপনার লিখতে হবে include1.xml
এবং include2.xml
।
মনে রাখবেন যে অন্তর্ভুক্ত করা ফাইলগুলি থেকে এক্সএমএল কেবলমাত্র উপস্থাপনের সময় আপনার লেআউটে ফেলে দেওয়া হয় top_level_activity
(বেশিরভাগ #INCLUDE
ক্ষেত্রে সি এর জন্য ম্যাক্রোর মতো )।
অন্তর্ভুক্ত ফাইলগুলি হ'ল প্লেইন জেন লেআউট এক্সএমএল।
অন্তর্ভুক্ত 1.xML :
<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/textView1"
android:text="First include"
android:textAppearance="?android:attr/textAppearanceMedium"/>
... এবং অন্তর্ভুক্ত 2.xML :
<?xml version="1.0" encoding="utf-8"?>
<Button xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/button1"
android:text="Button" />
দেখা? অভিনব কিছু না। মনে রাখবেন যে আপনাকে এখনও অ্যান্ড্রয়েড নেমস্পেসের সাথে ঘোষণা করতে হবে xmlns:android="http://schemas.android.com/apk/res/android
।
সুতরাং শীর্ষ_মোহিত_অ্যাক্টিভিটি.এক্সএমএল এর রেন্ডার সংস্করণটি হ'ল:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/layout1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<!-- First include file -->
<TextView
android:id="@+id/textView1"
android:text="First include"
android:textAppearance="?android:attr/textAppearanceMedium"/>
<!-- Second include file -->
<Button
android:id="@+id/button1"
android:text="Button" />
</LinearLayout>
আপনার জাভা কোডে, এই সমস্ত স্বচ্ছ: findViewById(R.id.textView1)
আপনার ক্রিয়াকলাপ শ্রেণিতে সঠিক উইজেটটি ফেরত দেয় (এমনকি যদি সেই উইজেটটি কোনও ক্রিয়াকলাপের বিন্যাসের চেয়ে আলাদা কোনও এক্সএমএল ফাইলে ঘোষিত হয়েছিল)।
এবং উপরে চেরি: ভিজ্যুয়াল এডিটরটি সাঁতার দিয়ে জিনিসটি পরিচালনা করে। শীর্ষ স্তরের বিন্যাসটি অন্তর্ভুক্ত এক্সএমএল সহ রেন্ডার করা হয়।
চক্রান্ত thickens
অন্তর্ভুক্ত ফাইলটি ক্লাসিক বিন্যাসের এক্সএমএল ফাইল হিসাবে, এর অর্থ এটির একটি শীর্ষ উপাদান থাকা আবশ্যক। সুতরাং আপনার ফাইলটিতে একাধিক উইজেট অন্তর্ভুক্ত করা দরকার হলে আপনাকে একটি বিন্যাস ব্যবহার করতে হবে।
এর include1.xml
এখন দুটি আছে বলে দিন TextView
: একটি বিন্যাস ঘোষণা করতে হবে। আসুন একটি নির্বাচন করা যাক LinearLayout
।
অন্তর্ভুক্ত 1.xML :
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/layout2"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<TextView
android:id="@+id/textView1"
android:text="Second include"
android:textAppearance="?android:attr/textAppearanceMedium"/>
<TextView
android:id="@+id/textView2"
android:text="More text"
android:textAppearance="?android:attr/textAppearanceMedium"/>
</LinearLayout>
Top_level_activity.xml যেমন অনুষ্ঠিত হবে:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/layout1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<!-- First include file -->
<LinearLayout
android:id="@+id/layout2"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<TextView
android:id="@+id/textView1"
android:text="Second include"
android:textAppearance="?android:attr/textAppearanceMedium"/>
<TextView
android:id="@+id/textView2"
android:text="More text"
android:textAppearance="?android:attr/textAppearanceMedium"/>
</LinearLayout>
<!-- Second include file -->
<Button
android:id="@+id/button1"
android:text="Button" />
</LinearLayout>
তবে অপেক্ষার দুই স্তরের LinearLayout
অপ্রয়োজনীয় !
প্রকৃতপক্ষে, দু'টি নেস্টেড LinearLayout
কোনও উদ্দেশ্য করে না কারণ একই রেন্ডারিংয়ের জন্য দু'টিকে TextView
অন্তর্ভুক্ত করা যেতে পারে ।layout1
তাহলে আমরা কি করতে পারি?
মার্জ ট্যাগ প্রবেশ করান
<merge>
ট্যাগ মাত্র একটি ডামি ট্যাগ যা অতিরেক সমস্যা এই ধরনের মোকাবিলা করার জন্য একটি শীর্ষ স্তরের উপাদান প্রদান করে।
এখন অন্তর্ভুক্ত 1.xML হয়ে যায়:
<merge xmlns:android="http://schemas.android.com/apk/res/android">
<TextView
android:id="@+id/textView1"
android:text="Second include"
android:textAppearance="?android:attr/textAppearanceMedium"/>
<TextView
android:id="@+id/textView2"
android:text="More text"
android:textAppearance="?android:attr/textAppearanceMedium"/>
</merge>
এবং এখন top_level_activity.xML কে রেন্ডার করা হয়েছে:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/layout1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<!-- First include file -->
<TextView
android:id="@+id/textView1"
android:text="Second include"
android:textAppearance="?android:attr/textAppearanceMedium"/>
<TextView
android:id="@+id/textView2"
android:text="More text"
android:textAppearance="?android:attr/textAppearanceMedium"/>
<!-- Second include file -->
<Button
android:id="@+id/button1"
android:text="Button" />
</LinearLayout>
আপনি একটি স্তরক্রম স্তর সংরক্ষণ করেছেন, একটি অকেজো দৃশ্য এড়ান: রোমেন গাই ইতিমধ্যে আরও ভাল ঘুমায়।
আপনি কি এখন সুখী নন?
<TextView />
, অন্য কিছু না।