লেআউট সম্পদ
সেভ করা পৃষ্ঠা গুছিয়ে রাখতে 'সংগ্রহ' ব্যবহার করুন
আপনার পছন্দ অনুযায়ী কন্টেন্ট সেভ করুন ও সঠিক বিভাগে রাখুন।
একটি লেআউট সংস্থান একটি Activity
বা একটি UI এর একটি উপাদানে 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
কোনো ডেরিভেশন নেস্টেড ভিউ গ্রহণ করে। কিছু ভিউ গ্রুপ হল 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
ক্লাসের জন্য সংশ্লিষ্ট রেফারেন্স ডকুমেন্টেশন দেখুন, উদাহরণস্বরূপ, LinearLayout
XML বৈশিষ্ট্যগুলি ।
-
<View>
- একটি পৃথক UI উপাদান, সাধারণত একটি উইজেট হিসাবে উল্লেখ করা হয়। বিভিন্ন ধরণের
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
-এর প্রতিটি বাস্তবায়ন দ্বারা সমর্থিত। আরও তথ্যের জন্য, লেআউট পড়ুন। সমস্ত উপলব্ধ বৈশিষ্ট্যগুলির একটি রেফারেন্সের জন্য, সংশ্লিষ্ট রেফারেন্স ডকুমেন্টেশন দেখুন, উদাহরণস্বরূপ, TextView
XML বৈশিষ্ট্যগুলি ।
-
<requestFocus>
-
View
অবজেক্টের প্রতিনিধিত্বকারী যেকোন উপাদানে এই খালি উপাদানটি অন্তর্ভুক্ত থাকতে পারে, যা পর্দায় তার মূল প্রাথমিক ফোকাস দেয়। আপনার প্রতি ফাইলের মধ্যে এই উপাদানগুলির মধ্যে শুধুমাত্র একটি থাকতে পারে। -
<include>
- এই লেআউটে একটি লেআউট ফাইল অন্তর্ভুক্ত করে।
গুণাবলী:
-
layout
- লেআউট সম্পদ । প্রয়োজন একটি লেআউট সম্পদের রেফারেন্স।
-
android:id
- রিসোর্স আইডি । অন্তর্ভুক্ত লেআউটে রুট ভিউতে দেওয়া আইডিটিকে ওভাররাইড করে।
-
android:layout_height
- মাত্রা বা কীওয়ার্ড । অন্তর্ভুক্ত লেআউটে রুট ভিউতে দেওয়া উচ্চতা ওভাররাইড করে। শুধুমাত্র কার্যকর যদি
android:layout_width
ঘোষণা করা হয়। -
android:layout_width
- মাত্রা বা কীওয়ার্ড । অন্তর্ভুক্ত লেআউটে রুট ভিউতে প্রদত্ত প্রস্থকে ওভাররাইড করে। শুধুমাত্র কার্যকরী যদি
android:layout_height
ও ঘোষণা করা হয়।
আপনি অন্তর্ভুক্ত লেআউটে মূল উপাদান দ্বারা সমর্থিত <include>
-এ অন্য যেকোন লেআউট বৈশিষ্ট্য অন্তর্ভুক্ত করতে পারেন এবং তারা মূল উপাদানে সংজ্ঞায়িত সেগুলিকে ওভাররাইড করে।
সতর্কতা: আপনি যদি <include>
ট্যাগ ব্যবহার করে লেআউট বৈশিষ্ট্যগুলিকে ওভাররাইড করতে চান তবে অন্যান্য লেআউট বৈশিষ্ট্যগুলি কার্যকর করার জন্য আপনাকে অবশ্যই android:layout_height
এবং android:layout_width
উভয়কেই ওভাররাইড করতে হবে৷
একটি লেআউট অন্তর্ভুক্ত করার আরেকটি উপায় হল ViewStub
ব্যবহার করা: একটি লাইটওয়েট ভিউ যা আপনি স্পষ্টভাবে স্ফীত না হওয়া পর্যন্ত কোনো লেআউট স্থান গ্রহণ করে না। আপনি যখন করেন, তখন এটির android:layout
বৈশিষ্ট্য দ্বারা সংজ্ঞায়িত একটি লেআউট ফাইল অন্তর্ভুক্ত করে। ViewStub
ব্যবহার সম্পর্কে আরও তথ্যের জন্য, চাহিদা অনুযায়ী লোড ভিউ পড়ুন।
-
<merge>
- একটি বিকল্প রুট উপাদান যা লেআউট অনুক্রমে আঁকা হয় না। এটিকে রুট এলিমেন্ট হিসেবে ব্যবহার করা উপযোগী যখন আপনি জানেন যে এই লেআউটটি এমন একটি লেআউটে স্থাপন করা হয়েছে যাতে ইতিমধ্যেই
<merge>
এলিমেন্টের বাচ্চাদের ধারণ করার জন্য উপযুক্ত প্যারেন্ট View
রয়েছে। এটি বিশেষভাবে উপযোগী যখন আপনি <include>
ব্যবহার করে এই লেআউটটিকে অন্য লেআউট ফাইলে অন্তর্ভুক্ত করার পরিকল্পনা করেন এবং এই লেআউটটির জন্য আলাদা ViewGroup
কন্টেইনার প্রয়োজন হয় না। লেআউটগুলি মার্জ করার বিষয়ে আরও তথ্যের জন্য, <include> এর সাথে লেআউটগুলি পুনঃব্যবহার করুন।
android: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
অবজেক্ট রিটার্ন করে।
যাইহোক, যদি আপনি ইতিমধ্যেই একটি আইডি রিসোর্স সংজ্ঞায়িত করে থাকেন, এবং এটি ইতিমধ্যেই ব্যবহার করা না হয়, তাহলে আপনি android:id
মানের প্লাস চিহ্নটি বাদ দিয়ে একটি View
এলিমেন্টে সেই IDটি প্রয়োগ করতে পারেন।
android:layout_height এবং android:layout_width-এর মান
উচ্চতা এবং প্রস্থের মানগুলি অ্যান্ড্রয়েড (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>
এই অ্যাপ্লিকেশন কোড onCreate()
পদ্ধতিতে একটি Activity
জন্য লেআউট লোড করে:
কোটলিন
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);
}
- এছাড়াও দেখুন:
এই পৃষ্ঠার কন্টেন্ট ও কোডের নমুনাগুলি Content License-এ বর্ণিত লাইসেন্সের অধীনস্থ। Java এবং OpenJDK হল Oracle এবং/অথবা তার অ্যাফিলিয়েট সংস্থার রেজিস্টার্ড ট্রেডমার্ক।
2024-09-09 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":"অন্যান্য"
}]
{"lastModified": "2024-09-09 UTC-\u09a4\u09c7 \u09b6\u09c7\u09b7\u09ac\u09be\u09b0 \u0986\u09aa\u09a1\u09c7\u099f \u0995\u09b0\u09be \u09b9\u09df\u09c7\u099b\u09c7\u0964"}
[[["সহজে বোঝা যায়","easyToUnderstand","thumb-up"],["আমার সমস্যার সমাধান হয়েছে","solvedMyProblem","thumb-up"],["অন্যান্য","otherUp","thumb-up"]],[["এতে আমার প্রয়োজনীয় তথ্য নেই","missingTheInformationINeed","thumb-down"],["খুব জটিল / অনেক ধাপ","tooComplicatedTooManySteps","thumb-down"],["পুরনো","outOfDate","thumb-down"],["অনুবাদ সংক্রান্ত সমস্যা","translationIssue","thumb-down"],["নমুনা / কোড সংক্রান্ত সমস্যা","samplesCodeIssue","thumb-down"],["অন্যান্য","otherDown","thumb-down"]],["2024-09-09 UTC-তে শেষবার আপডেট করা হয়েছে।"]]