ম্যাচ_পিতা এবং ফিল_প্যারেন্টের মধ্যে পার্থক্য কী?


1399

দুটি এক্সএমএল বৈশিষ্ট্য সম্পর্কে আমি কিছুটা বিভ্রান্ত: match_parentএবং fill_parent। মনে হয় উভয়ই এক রকম। তাদের মধ্যে কি কোনও পার্থক্য আছে?


আপনি যদি নিখরচায় বিকাশকারী
android.com/references/android/view/…

উত্তর:


1235

তারা একই জিনিস (এপিআই লেভেল 8+ এ)। ব্যবহার match_parent

FILL_PARENT (এপিআই লেভেল 8 এবং উচ্চতরতে MATCH_PARENT নামকরণ করা হয়েছে) যার অর্থ ভিউটি তার পিতামাতার মতো বড় হতে চায় (মাইনাস প্যাডিং)

...

fill_parent: ভিউটি তার পিতামাতার মতো (মাইনাস প্যাডিং) বড় হওয়া উচিত। এই ধ্রুবকটি API স্তর 8 থেকে শুরু করে অবহেলা করা হয় এবং এর দ্বারা প্রতিস্থাপিত হয় match_parent

http://developer.android.com/reference/android/view/ViewGroup.LayoutParams.html


5
আমি যদি 1.6 এবং 2.2 উভয়ের জন্য অ্যাপ লিখি তবে আমি সামঞ্জস্যের জন্য ফিল_প্যারেন্ট ব্যবহার করব, এটা কি ঠিক?
এমেরাল্ডিওউ

12
কিছুটা তফাত অবশ্যই আছে? নইলে গুগল কেন এটিকে অবজ্ঞা করে নতুন নামকরণ করেছে?
stuckedoverflow

49
@Halim না, নেই কোন differece : উভয় ধ্রুবক হিসেবে সংজ্ঞায়িত করা হয় -1। আমি আপনাকে এটি সম্পর্কে আরও ভাল বোধ করছি, আমি এটির মধ্যেও কোনও লাভ করব না ... :-)
আরপি

2
@ জ্লোভিসন না, কোনও পার্থক্য নেই। দুটোই -1। আপনি ত্রুটি পেয়েছেন কারণ পুরানো প্ল্যাটফর্মটি একই ধ্রুবকের নতুন নাম সম্পর্কে জানে না।
তপিরবয়

16
এটি এত অদ্ভুত যে অ্যান্ড্রয়েড স্টুডিও এখনও সমস্ত ডিফল্ট টেম্পলেট তৈরি লেআউটে "ফিল_প্যারেন্ট" রাখে! আমি জানি যে তারা একই, তবে আমি প্রতি বছর এই এসও প্রশ্নে ফিরে আসছি যাতে নিশ্চিত হয়ে যায় যে কেউ সত্যই কোনও পার্থক্য আছে তা আবিষ্কার করে নি। গুগল / অ্যান্ড্রয়েড-দল দয়া করে ডিফল্ট মানটি "ফিল_প্যারেন্ট" থেকে "ম্যাচ_পিতা "তে পরিবর্তন করতে পারেন? আগাম ধন্যবাদ! :)
শুক্রবার

246

বিভ্রান্তি এড়াতে গুগল নাম পরিবর্তন করেছে।

পুরানো নামটির সাথে সমস্যাটি fill parentহ'ল এটি এর দ্বারা পিতামাতার মাত্রাগুলিকে প্রভাবিত করে, match parentফলাফলের আচরণটি আরও ভালভাবে বর্ণনা করে - পিতামাতার সাথে মাত্রাটি মেলে।

উভয় ধ্রুবক -1শেষ পর্যন্ত সংশোধন করে এবং তাই অ্যাপ্লিকেশনটিতে অভিন্ন আচরণের ফলস্বরূপ। হাস্যকরভাবে যথেষ্ট, বিষয়গুলি স্পষ্ট করতে এই নাম পরিবর্তনটি এটিকে অপসারণের পরিবর্তে বিভ্রান্তি যোগ করেছে বলে মনে হয়।


17
... প্রস্থ = ম্যাচ_পিতা এবং রিলেটিভলআউটের সন্তানের সাথে বাদ দিয়ে, অন্যটি বলুন f এটি তার পিতামাতার মাত্রার সাথে মেলে না, এটি এতে যা থেকে যায় তা পূরণ করে। এটি কেবল কারণ বিভ্রান্তির জন্য কাজ করে।
কায়ে

7
যেমন FILL_PARENT এবং MATCH_PARENT এর অর্থ হল ভিউটি তার পিতামাতার মতোই বড় হতে চায়, পিতামাতার প্যাডিংটি বাহ্যিক মাত্রার চেয়ে অভ্যন্তরের স্থান নয়? এখন আমি আরও বিভ্রান্ত!
কল্টর

@bnieland আমি অভ্যন্তরীণ এবং বাহ্যিক মাত্রাগুলির উল্লেখগুলি সরিয়ে দিয়েছি কারণ তারা বিকাশকারী.অ্যান্ড্রয়েড . com/references/android/view/… এ গুগল ডকুমেন্টেশনের সাথে একমত নন যদিও আমি স্যাটনেট.আর.জে একটি অনুরূপ (অসমর্থিত) উদ্ধৃতি দেখতে পাচ্ছি / 2014/11/22 /… যা এখান থেকে আপনি আপনার তথ্য পেয়েছেন।
কলটার

28

কার্যকরীভাবে কোনও পার্থক্য নেই, গুগল এপিআই স্তর 8 (অ্যান্ড্রয়েড 2.2) থেকে সবেমাত্র নাম_পরিবার থেকে ম্যাচ_পিতা থেকে পরিবর্তন করেছে। সামঞ্জস্যের কারণে FILL_PARENT এখনও উপলব্ধ।

LayoutParams.FILL_PARENTএবং LayoutParams.MATCH_PARENTউভয়ের মান -1 হয়। ফিল প্যারেন্ট থেকে ম্যাচ প্যারেন্টে পরিবর্তিত হওয়ার জন্য গুগল কী প্ররোচিত হয়েছে তা নিশ্চিত নন :)

যেহেতু বেশিরভাগ phones are >= Android 2.2.. আপনার ভবিষ্যতের সামঞ্জস্যের জন্য ম্যাচ প্যারেন্ট ব্যবহার করা উচিত ... নিশ্চিত হন না যে তারা পুরানো ফিল প্যারেন্ট ধ্রুবকটি কখন বন্ধ করবেন!


11

সামঞ্জস্যের জন্য, ভরাট_পিতা বা তার সাথে আটকে থাকা আরও ভাল, যেমন, API 8 ডিভাইসের নীচে সমর্থন করার সময়। তবে যদি আপনার অ্যাপ্লিকেশনটি 8 এবং তারপরের দিকে API টি টার্গেট করে তবে আপনার পরিবর্তে ম্যাচ_পিতা ব্যবহার করা উচিত।


8
শুধুমাত্র পিছনের সামঞ্জস্য যদিও। যদি FILL_PARENTঅবচয় হয় (উপরের ম্যাট বল দ্বারা উল্লিখিত), তবে ফরওয়ার্ড সামঞ্জস্যের একমাত্র বিকল্প MATCH_PARENT

2
সম্মত হন তবে আপনার যদি নীচের এপিআই স্তরের ডিভাইসগুলির জন্য কোড লেখার পরিকল্পনা থাকে তবে: ফিল্ড_প্যারেন্ট ব্যবহার করার প্রয়োজন মুহুর্তের জন্য আপনি ২.৩,২.২,২.১। পুরানো সংস্করণগুলির জন্য ম্যাচ_প্যারেন্ট ব্যবহার করে আমার কিছু সমস্যা হয়েছিল।
এমএসএ

এখন এই উত্তরটি মুছে ফেলার সময়। এটি আর প্রাসঙ্গিক নয় এবং নতুন বিকাশকারীদের ভুল পরামর্শ দিতে পারে
টিম

8

FILL_PARENTএপিআই লেভেল 8 এ MATCH_PARENTঅবমূল্যায়ন করা হয়েছে এবং উচ্চতর স্তরের এপিআই ব্যবহার করুন


8

ম্যাচ_প্যারেন্টটি ফিল - প্যারেন্টের জায়গায় ব্যবহৃত হয় এবং এটি পিতামাতার যতদূর যায় সেটাকে সেট করে। কেবল ম্যাচ_পিতা ব্যবহার করুন এবং ভরাট_পিতা সম্পর্কে ভুলে যান । আমি সম্পূর্ণরূপে ভরাট_ পিতা-মাতা এবং সমস্ত কিছুই যথারীতি নিখুঁত।

আরও জন্য এখানে চেক করুন


6

এটির প্রকৃত ক্রিয়াটির কাছাকাছি একটি নাম দেওয়ার জন্য"fill_parent"নামটি ইঙ্গিত হিসাবে অবশিষ্ট স্থানটি পূরণ করে না (এর জন্য আপনি ওজন বৈশিষ্ট্যটি ব্যবহার করেন)। পরিবর্তে, এটি এর লেআউট পিতা-মাতার যতটা জায়গা নেয়। এজন্যই নতুন নাম"match_parent"


2
লোকেরা যখন এ কথা বলে তখন আমি তাদের যুক্তি বুঝতে পারি না। পিতামাতার প্যাডিং রয়েছে। বা শিশুটি অন্য একজনের বাকি রয়েছে। বাচ্চা কি এর সাথে মিলছে? না, এটা কি বাকি জায়গা পূরণ করছে? আপাতদৃষ্টিতে বিজারারো ওয়ার্ল্ডের মধ্যে আমরা উত্তর দিই: হ্যাঁ।
কায়ে

1
@ কেএ আমি সম্পূর্ণরূপে সম্মত হই যে নতুন নামটি পুরানোটির চেয়ে খারাপ। তবে গুগল যা বলে তা যায়।
কলটার

6

উভয়ের একই কার্যকারিতা কেবলমাত্র পার্থক্য হ'ল ফিলিং-প্যারেন্টটি এপিআই লেভেল 8 পর্যন্ত ব্যবহৃত হয় এবং ম্যাচ_প্যারেন্টটি এপিআই স্তর 8 বা উচ্চতর স্তরের পরে ব্যবহৃত হয়।


6

আপনি লেআউট সেট যখন widthএবং height যেমন match_parentমধ্যে XMLসম্পত্তি, এটি সম্পূর্ণ এলাকায় পিতা বা মাতা দৃশ্য আছে যে ব্যাপৃত হবে অর্থাৎ এটা পিতা বা মাতা হিসাবে হিসাবে বড় হতে হবে।

<LinearLayout
    android:layout_width="300dp"
    android:layout_height="300dp"
    android:background="#f9b0b0">

    <TextView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="#b0f9dc"/>

</LinearLayout>

হরে পিতামাতা লাল এবং শিশু সবুজ। শিশুরা সমস্ত অঞ্চল দখল করে। কারণ এটি widthএবং height আছে match_parent

এখানে চিত্র বর্ণনা লিখুন

দ্রষ্টব্য: পিতামাতার যদি কোনও প্যাডিং প্রয়োগ করা হয় তবে সেই স্থানটি অন্তর্ভুক্ত করা হবে না।

<LinearLayout
    android:layout_width="300dp"
    android:layout_height="300dp"
    android:background="#f9b0b0"
    android:paddingTop="20dp"
    android:paddingBottom="10dp">

    <TextView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="#b0f9dc"/>

</LinearLayout>

এখানে চিত্র বর্ণনা লিখুন

সুতরাং টেক্সটভিউ hight = 300dp (প্যারেন্ট হাইট) - (20 (প্যাডিংটপ) +10 (প্যাডিংবটম)) = (300 - 30) ডিপি = 270 ডিপি

পূরণ করুন_পরিচয় বনাম ম্যাচ_প্যারেন্ট

fill_parent এর পূর্বের নাম match_parent

এপিআই লেভেল 8 এবং এর জন্য উচ্চতর fill_parentনামকরণ হয়েছে match_parentএবং fill_parentএখন হ্রাস করা হয়েছে।

সুতরাং fill_parentএবং match_parentএকই।

ভরা_পরিবারের জন্য এপিআই ডকুমেন্টেশন

ভিউটি তার পিতামাতার মতো (মাইনাস প্যাডিং) বড় হওয়া উচিত। এই ধ্রুবকটি API স্তর 8 থেকে শুরু করে অবহেলা করা হয় এবং replaced @ কোড ম্যাচ_পিতা} দ্বারা প্রতিস্থাপিত হয়}


4

ম্যাচ প্যারেন্ট, যার অর্থ ভিউটি তার পিতামাতার মতো বড় হতে চায় (মাইনাস প্যাডিং)।

র‌্যাপ_কন্টেন্ট, যার অর্থ ভিউটি কেবলমাত্র তার সামগ্রীটি আবদ্ধ করার জন্য যথেষ্ট বড় হতে চায় (প্লাস প্যাডিং)

আরও ভাল উদাহরণের জন্য, আমি একটি নমুনা বিন্যাস তৈরি করেছি যা এই ধারণাটি প্রদর্শন করে। এর প্রভাব দেখতে, আমি প্রতিটি পাঠ্য ভিউ সামগ্রীর সীমানা যুক্ত করেছি।

"প্যারেন্টের সাথে ম্যাচ করুন" টেক্সটভিউ কন্টেন্টে আমরা দেখতে পাচ্ছি যে এটির লেআউট প্রস্থটি পুরো প্যারেন্টের বাইরে ছড়িয়ে রয়েছে।

তবে আমরা "মোড়ানো বিষয়বস্তু" পাঠ্য ভিউ সামগ্রীতে দেখতে পাচ্ছি, এটির লেআউটের প্রস্থটি এর সামগ্রীতে (মোড়ানো বিষয়বস্তু) দৈর্ঘ্যে আবৃত আছে।

অ্যান্ড্রয়েড লেআউট


4

match_parent এবং fill_parent একই সম্পত্তি, অনুভূমিকভাবে বা উল্লম্বভাবে সম্পূর্ণ স্ক্রিনে কোনও দৃশ্যের প্রস্থ বা উচ্চতা নির্ধারণ করতে ব্যবহৃত হয়।

এই বৈশিষ্ট্যগুলি এর মতো অ্যান্ড্রয়েড এক্সএমএল ফাইলগুলিতে ব্যবহৃত হয়।

 android:layout_width="match_parent"
 android:layout_height="fill_parent"

অথবা

 android:layout_width="fill_parent"
 android:layout_height="match_parent"

fill_parentপূর্ববর্তী সংস্করণগুলিতে ব্যবহৃত হয়েছিল, তবে এখন এটি হ্রাস ও প্রতিস্থাপন করা হয়েছে match_parent। আমি আশা করি এটি আপনাকে সাহায্য করবে


3

ভরা_পিতা: ভিউটি তার পিতামাতার মতো বড় হওয়া উচিত।

এখন এই বিষয়বস্তু পূরণ_পিত্তিকে অবচয় এবং ম্যাচ_পিতা দ্বারা প্রতিস্থাপন করা হয়েছে।


3

আমার জন্য পিতামাতাকে পূরণ করুন এবং ম্যাচ পিতামাতারা একই ফাংশনটি সম্পাদন করেন যা কেবল:

পূরণ পিতামাতা : API 8 এর আগে ব্যবহার করা হয়েছিল

ম্যাচ প্যারেন্ট এটি এডিআই 8+ থেকে ব্যবহৃত হয়েছিল উভয়ের পূরণের প্যাডেন্ট ভিউ পূরণ করে


2

FILL_PARENT এপিআই লেভেল 8 এবং উচ্চতরতে MATCH_PARENT নামকরণ করা হয়েছে যার অর্থ ভিউটি তার পিতামাতার মতো বড় হতে চায় (মাইনাস প্যাডিং) - গুগল


2

FILL_PARENT এপিআই স্তর 8 এবং উচ্চতর থেকে হ্রাস করা হয় এবং এটি উপরের সংস্করণগুলির হিসাবে নামকরণ করা হয় MATCH_PARENT

উভয় একই FILL_PARENTএবং MATCH_PARENT, FILL_PARENTএপিআই স্তর 8 এবং MATCH_PATENT কম সংস্করণ কম ক্ষেত্রে ব্যবহার করা হয়েছিল 8 বেশী এপিআই স্তর বৃহত্তর ব্যবহার করা হয়।

FILL_PARENT( MATCH_PARENTএপিআই লেভেল 8 এবং উচ্চতর নামকরণ করা হয়েছে) যার অর্থ ভিউটি তার পিতামাতার মতো বড় হতে চায় (মাইনাস প্যাডিং)

fill_parent: ভিউটি তার পিতামাতার মতো (মাইনাস প্যাডিং) বড় হওয়া উচিত। এই ধ্রুবকটি API স্তর 8 থেকে শুরু করে অবহেলা করা হয় এবং এর দ্বারা প্রতিস্থাপিত হয় match_parent

আরও তথ্যের জন্য দয়া করে এই পৃষ্ঠাটি দেখুন


0

1. ম্যাচ_পিতা

আপনি যখন লেআউটের প্রস্থ এবং উচ্চতাটি ম্যাচ_পিতা হিসাবে সেট করবেন, তখন এটি পিতামাতার ভিউর সম্পূর্ণ অঞ্চল দখল করবে, অর্থাৎ এটি পিতামাতার মতো বৃহত্তর হবে।

দ্রষ্টব্য : পিতামাতার যদি কোনও প্যাডিং প্রয়োগ করা হয় তবে সেই স্থানটি অন্তর্ভুক্ত করা হবে না।

যখন আমরা ডিফল্টরূপে একটি লেআউট.এক্সএমএল তৈরি করি তখন অ্যান্ড্রয়েড: লেআউট_উইথ = "ম্যাচ_প্যারেন্ট" এবং অ্যান্ড্রয়েডের সাথে দেখুন: লেআউট_উইথ = "ম্যাচ_প্যারেন্ট" অর্থাত্ এটি মোবাইল স্ক্রিনের সম্পূর্ণ প্রস্থ এবং উচ্চতা দখল করে।

এছাড়াও নোট করুন যে প্যাডিং সমস্ত পক্ষেই প্রয়োগ করা হয়েছে,

android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"

এখন একটি উপ-ভিউ লিনিয়ারলআউট যুক্ত করতে দিন এবং এর লেআউট_উইথ = "ম্যাচ_প্যারেন্ট" এবং লেআউট_ উচ্চতা = "ম্যাচ_পিতা" সেট করুন, গ্রাফিকাল ভিউতে এরকম কিছু প্রদর্শিত হবে,

match_parent_example

কোড

xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.code2care.android.togglebuttonexample.MainActivity" >

android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_marginLeft="11dp"
android:background="#FFFFEE"
android:orientation="vertical" >

2. পূরণ_পিতা:

এটি ম্যাচ_পিতা হিসাবে সমান, ফিল_প্যারেন্টকে এপিআই লেভেল ৮ এ অবমূল্যায়ন করা হয়েছিল। সুতরাং আপনি যদি API এর 8 স্তর বা তার বেশি ব্যবহার করে থাকেন তবে অবশ্যই আপনাকে ফিল_প্যারেন্ট ব্যবহার এড়াতে হবে

আমরা ম্যাচ-প্যারেন্টের মতো একই পদক্ষেপগুলি অনুসরণ করি, তার পরিবর্তে সর্বত্র ফিল_প্যারেন্ট ব্যবহার করুন।

আপনি দেখতে পাবেন যে ফিল_প্যারেন্ট এবং ম্যাচ পিতা বা মাতা উভয়ের মধ্যে আচরণের মধ্যে কোনও পার্থক্য নেই।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.