Match_parent සහ fill_parent අතර වෙනස කුමක්ද?


1404

XML ගුණාංග දෙකක් ගැන මම ටිකක් ව්‍යාකූල වී සිටිමි: match_parentසහ fill_parent. දෙකම එක හා සමාන බව පෙනේ. ඔවුන් අතර වෙනසක් තිබේද?


ඔබට නිදහස් සංවර්ධකයෙකු
.android.com

Answers:


1237

ඒවා එකම දෙයකි (API මට්ටම 8+ හි). භාවිතා කරන්න match_parent.

FILL_PARENT (API මට්ටමේ 8 සහ ඊට ඉහළින් MATCH_PARENT ලෙස නම් කරන ලදි), එයින් අදහස් වන්නේ දර්ශනය එහි මවුපියන් තරම් විශාල වීමට අවශ්‍ය බවයි (us ණ පෑඩින්)

...

fill_parent: දර්ශනය එහි මවුපියන් තරම් විශාල විය යුතුය (us ණ පෑඩින්). මෙම නියතය API මට්ටම 8 සිට ආරම්භ වන අතර එය ප්‍රතිස්ථාපනය match_parentවේ.

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


5
මම 1.6 සහ 2.2 යන දෙකටම යෙදුම ලියන්නේ නම්, අනුකූලතාව සඳහා මම fill_parent භාවිතා කරමි, එය හරිද?
emeraldhieu

12
යම් වෙනස්කම් තිබිය යුතුයි නේද? එසේ නොමැතිනම් ගූගල් එය අතහැර දමා නව එකක් නම් කළේ ඇයි?
stuckedoverflow

49
Al හලීම් නැත, වෙනසක් නැත : දෙකම නියත ලෙස අර්ථ දක්වා ඇත -1. මට ඔබට ඒ ගැන හොඳ හැගීමක් දැනෙනවා, ඒ තුළ ඇති දුර්වලතාවය මට ලැබෙන්නේ නැහැ ... :-)
arpy

2
lojlovison නැත, වෙනස්කම් නොමැත. දෙකම -1. පැරණි වේදිකාව එකම නියතයේ නව නම ගැන නොදන්නා නිසා ඔබට දෝෂය ඇතිවිය.
ටැපිර්බෝයි

16
එය කෙතරම් අමුතුද යත්, ඇන්ඩ්‍රොයිඩ් ස්ටුඩියෝ තවමත් "ෆිල්_පෙරන්ට්" සියලු පෙරනිමි අච්චු වලින් සාදන ලද පිරිසැලසුම් තුළ තබයි! ඒවා එක හා සමාන බව මම දනිමි, නමුත් ඇත්ත වශයෙන්ම වෙනසක් ඇති බව කිසිවෙකු විසින් සොයාගෙන නොමැති බව සහතික කර ගැනීම සඳහා මම සෑම වසරකම මෙම SO ප්‍රශ්නයට නැවත පැමිණෙමි. ගූගල් / ඇන්ඩ්‍රොයිඩ්-කණ්ඩායමට කරුණාකර පෙරනිමි අගය "fill_parent" සිට "match_parent" ලෙස වෙනස් කළ හැකිද? කලින්ම ස්තූතියි! :)
ස්වෝබි

247

ව්යාකූලත්වය වළක්වා ගැනීම සඳහා ගූගල් නම වෙනස් කළේය.

පැරණි නම සමඟ ඇති ගැටළුව නම් fill parent, එය දෙමව්පියන්ගේ මානයන් කෙරෙහි බලපාන බව අඟවන අතර, එහි ප්‍රති match parentbehavior ලයක් ලෙස හැසිරීම වඩාත් හොඳින් විස්තර කරයි - මාපිය සමඟ මානය ගැලපෙන්න.

නියතයන් දෙකම -1අවසානයේ දී නිරාකරණය වන අතර එමඟින් යෙදුමේ සමාන හැසිරීම් ඇති වේ. හාස්‍යයට කරුණක් නම්, කරුණු පැහැදිලි කිරීම සඳහා කරන ලද මෙම නම වෙනස් කිරීම එය තුරන් කරනවාට වඩා ව්‍යාකූලත්වයක් ඇති කළ බව පෙනේ.


17
... සාපේක්ෂ ලේයවුට්ගේ දරුවා සමඟ පළල = ගැලපීම්_පෙරෙන්ට් සහ තවත් අයෙකු වම් පසින් කියන්න. එය දෙමව්පියන්ගේ මානයට නොගැලපේ, එය එහි ඉතිරිව ඇති දේ පුරවයි. එය සේවය කරන්නේ අවුල් සහගත තත්වයකට පමණි.
kaay

7
FILL_PARENT සහ MATCH_PARENT යන්නෙන් අදහස් කරන්නේ දර්ශනය එහි මවුපියන් තරම් විශාල වීමට අවශ්‍ය බවයි, දෙමව්පියන්ගේ පෑඩින් us ණ කිරීමෙන් පිටත මානයන් වෙනුවට අභ්‍යන්තර අවකාශය නොවේද? දැන් මම ඊටත් වඩා ව්‍යාකූලයි!
කැල්ටර්

ඔවුහු ගූගල් ප්රලේඛනය සමග එකඟ නොවන ලෙස මම ඇතුළත සහ පිටත මාන කිරීමට යොමු ඉවත් කර ඇත @bnieland developer.android.com/reference/android/view/... මම සමාන (තහවුරු නොකල) උපුටා බලන්න පුළුවන් වුවත් sevennet.org / 2014/11/22 /… ඔබේ තොරතුරු ලබා ගත හැකි ස්ථානය එයයි.
කැල්ටර්

28

ක්‍රියාකාරීව කිසිදු වෙනසක් නැත, ගූගල් විසින් API_8 සිට (ඇන්ඩ්‍රොයිඩ් 2.2) නම ෆිල්_පෙරන්ට් සිට මැච්_පෙරන්ට් ලෙස වෙනස් කළේය. අනුකූලතා හේතුව නිසා FILL_PARENT තවමත් පවතී.

LayoutParams.FILL_PARENTහා LayoutParams.MATCH_PARENTදෙකම වටිනාකමක් තිබිය -1. දෙමාපියන් පුරවන්න සිට දෙමාපියන්ට ගැලපීමට ගූගල් පෙලඹුණේ කුමක් දැයි විශ්වාස නැත :)

බොහෝමයක් phones are >= Android 2.2.. ඔබ අනාගත ගැළපුම සඳහා මැච් මාපිය භාවිතා කළ යුතුය ... ඔවුන් පැරණි ෆිල් මාපිය නියතය අත්හිටුවන්නේ කවදාදැයි විශ්වාස නැත!


11

ගැළපුම සඳහා, පිරවුම්_ දෙමාපියන්ට ඇලී සිටීම වඩා හොඳය, එනම්, API 8 උපාංගවලට පහළින් සහය දක්වන විට. නමුත් ඔබගේ යෙදුම API 8 සහ ඊට ඉහළින් ඉලක්ක කරන්නේ නම්, ඒ වෙනුවට ඔබ match_parent භාවිතා කළ යුතුය.


8
පසුගාමී අනුකූලතාව පමණි. FILL_PARENTඅතහැර දැමුවහොත් (ඉහත මැට් බෝල් සඳහන් කළ පරිදි), ඉදිරි අනුකූලතාව සඳහා ඇති එකම විකල්පය වේ MATCH_PARENT.

2
එකඟ වන්න, නමුත් පහළ API මට්ටමේ උපාංග සඳහා කේත ලිවීමට ඔබ අදහස් කරන්නේ නම් උදා: 2.3,2.2,2.1 ඔබට FILL_PARENT භාවිතා කිරීමට අවශ්‍ය මොහොතේ. පැරණි අනුවාද සඳහා match_parent භාවිතා කිරීමේදී මට යම් ගැටළු ඇති විය.
MSA

මෙම පිළිතුර මකා දැමීමට කාලයයි. එය තවදුරටත් අදාළ නොවන අතර නව සංවර්ධකයින්ට වැරදි උපදෙස් ලබා දිය හැකිය
ටිම්


8

match_parent වෙනුවට භාවිතා fill_parent මව් යනවා ලෙස එය මෙතෙක් ලෙස යන්න සහ කට්ටල. යන්තම් භාවිතා match_parent හා ගැන අමතක fill_parent . මම ෆිල්_පෙරන්ට් සම්පූර්ණයෙන්ම අතහැර දැමූ අතර සියල්ල සුපුරුදු පරිදි පරිපූර්ණයි.

වැඩි විස්තර සඳහා මෙහි පරීක්ෂා කරන්න .


6

එහි සැබෑ ක්‍රියාවට සමීප නමක් ලබා දීම සඳහා . "fill_parent"නමට අනුව ඉතිරි ඉඩ පුරවන්නේ නැත (ඒ සඳහා ඔබ බර ගුණාංගය භාවිතා කරයි). ඒ වෙනුවට, එය එහි පිරිසැලසුම් මවුපිය තරම් ඉඩ ප්‍රමාණයක් ගනී. අළුත් නම එයයි"match_parent"


2
මිනිසුන් මෙය පවසන විට මට ඔවුන්ගේ තර්කනය තේරෙන්නේ නැත. දෙමව්පියන්ට පෑඩින් ඇත. නැත්නම් දරුවා ඉතුරු වෙනවා. දරුවා එයට ගැලපේද? නැත, එය ඉතිරි ඉඩ පුරවනවාද? පෙනෙන විදිහට බිසාරෝ වර්ල්ඩ්හි අපි පිළිතුරු දෙන්නේ: ඔව්.
kaay

1
නව නම පැරණි නමට වඩා නරක යැයි මම සම්පූර්ණයෙන්ම එකඟ වෙමි. නමුත් ගූගල් කියන දේ යයි.
කැල්ටර්

6

දෙකම සමාන ක්‍රියාකාරීත්වයක් ඇති අතර වෙනස වන්නේ fill_parent API මට්ටම 8 දක්වා භාවිතා වන අතර match_parent API මට්ටම 8 හෝ ඊට ඉහළ මට්ටමෙන් පසුව භාවිතා කිරීමයි.


6

ඔබ පිරිසැලසුම සැකසූ විට widthසහ දේපල වලදී height මෙන් , එය දෙමව්පියන්ගේ දර්ශනය ඇති සම්පූර්ණ ප්‍රදේශය අත්පත් කර ගනු ඇත, එනම් එය දෙමව්පියන් තරම් විශාල වනු ඇත.match_parentXML

<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>

රූප විස්තරය මෙහි ඇතුළත් කරන්න

එබැවින් TextView hight = 300dp (දෙමාපිය උස) - (20 (paddingTop) +10 (paddingBottom)) = (300 - 30) dp = 270 dp

fill_parent Vs match_parent

fill_parent යනු පෙර නමයි match_parent

ඒපීඅයි මට්ටම 8 සහ ඊට වැඩි fill_parentලෙස නම් කර ඇති match_parentඅතර fill_parentදැන් එය ඉවත් කර ඇත.

ඉතින් එක fill_parentහා match_parentසමානයි.

Fill_parent සඳහා API ප්‍රලේඛනය

දර්ශනය එහි මවුපියන් තරම් විශාල විය යුතුය (us ණ පෑඩින්). මෙම නියතය API මට්ටම 8 සිට ඇරඹී එය ප්‍රතිස්ථාපනය කරනු ලැබේ {ode කේත ගැලපීම්_පෙරන්ට් by.


4

match_parent, එයින් අදහස් කරන්නේ දර්ශනයට එහි මවුපියන් තරම් විශාල වීමට අවශ්‍ය බවයි (us ණ පෑඩින්).

wrap_content, එයින් අදහස් කරන්නේ දර්ශනයට එහි අන්තර්ගතය කොටු කිරීමට තරම් විශාල වීමට අවශ්‍ය බවයි (ප්ලස් පැඩින්)

වඩා හොඳ නිදර්ශනයක් සඳහා, මම මෙම සංකල්පය නිරූපණය කරන නියැදි පිරිසැලසුමක් නිර්මාණය කර ඇත්තෙමි. එහි බලපෑම බැලීමට, මම එක් එක් පෙළ දර්ශන අන්තර්ගතයේ මායිමක් එක් කළෙමි.

"මවුපියන්ට ගැලපෙන්න" පෙළ දර්ශන අන්තර්ගතය තුළ, එහි පිරිසැලසුම් පළල එහි මව්පිය මුළු දිගින්ම පැතිරී ඇති බව අපට දැකගත හැකිය.

නමුත් අපට "ආවරණ අන්තර්ගතය" පෙළ දර්ශන අන්තර්ගතයෙන් දැකිය හැකිය, එහි පිරිසැලසුම් පළල එහි අන්තර්ගතයෙන් (අන්තර්ගතය ඔතා) දිගින් ඔතා ඇත.

Android පිරිසැලසුම


4

match_parent හා fill_parent එම දේපළ වේ, තිරස් අතට හෝ සිරස් අතට තිරය තුල පළල හෝ දැක්ම උස නිර්වචනය කිරීම සඳහා යොදා ගනී.

මෙම ගුණාංග android xml ගොනු වල භාවිතා වේ.

 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

fill_parent: දර්ශනය එහි මවුපියන් තරම් විශාල විය යුතුය.

දැන් මෙම අන්තර්ගතය fill_parent ඉවත් කර match_parent මගින් ප්‍රතිස්ථාපනය කර ඇත.


3

මට දෙමව්පියන් පිරවීම සහ ගැලපෙන දෙමව්පියන් එකම කාර්යය ඉටු කරන්නේ එය පමණි:

දෙමව්පියන් පුරවන්න : API 8 ට පෙර භාවිතා කරන ලදි

ගැලපෙන මාපිය මෙය API 8+ දෙකින්ම භාවිතා කර ඇත


2

FILL_PARENT API මට්ටමේ 8 සහ ඊට ඉහළින් MATCH_PARENT ලෙස නම් කරන ලදි, එයින් අදහස් වන්නේ දර්ශනය එහි මවුපියන් තරම් විශාල වීමට අවශ්‍ය බවයි (us ණ පෑඩින්) - ගූගල්


2

FILL_PARENT API මට්ටම 8 සහ ඊට ඉහළින් ඉවත් කර ඇති අතර එය ඉහළ අනුවාද සඳහා නම් කර ඇත MATCH_PARENT

දෙකම එක FILL_PARENTහා සමාන වන අතර MATCH_PARENT, FILL_PARENTAPI මට්ටමේ 8 ට වඩා අඩු අනුවාදයේ භාවිතා කරන ලද අතර MATCH_PATENT 8 ට වඩා වැඩි API මට්ටමේ භාවිතා වේ.

FILL_PARENT( MATCH_PARENTAPI මට්ටම 8 සහ ඊට ඉහළින් නම් කර ඇත), එයින් අදහස් වන්නේ දර්ශනය එහි මවුපියන් තරම් විශාල වීමට අවශ්‍ය බවයි (us ණ පෑඩින්)

fill_parent: දර්ශනය එහි මවුපියන් තරම් විශාල විය යුතුය (us ණ පෑඩින්). මෙම නියතය API මට්ටම 8 සිට ආරම්භ වන අතර එය ප්‍රතිස්ථාපනය match_parentවේ.

වැඩි විස්තර සඳහා කරුණාකර මෙම පිටුවට පිවිසෙන්න


0

1. match_parent

ඔබ පිරිසැලසුම් පළල සහ උස 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"

දැන් උප-දර්ශන රේඛීය සැකැස්මක් එක් කර එහි පිරිසැලසුම_විඩ්ත් = "මැච්_පෙරන්ට්" සහ පිරිසැලසුම_හයිට් = "මැච්_පෙරන්ට්" සකසා ගනිමු, චිත්‍රක දර්ශනය මෙවැනි දෙයක් පෙන්වනු ඇත,

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. fill_parent:

මෙය match_parent හා සමාන වේ, fill_parent API මට්ටම 8 හි ක්ෂය වී ඇත. එබැවින් ඔබ API මට්ටම 8 හෝ ඊට ඉහළින් භාවිතා කරන්නේ නම් ඔබ fill_parent භාවිතා කිරීමෙන් වැළකී සිටිය යුතුය.

අපි match_parent සඳහා කළ පියවර අනුගමනය කරමු, ඒ වෙනුවට සෑම තැනකම fill_parent භාවිතා කරන්න.

ෆිල්_පෙරන්ට් සහ ගැලපෙන මාපිය යන දෙඅංශයේම හැසිරීමේ වෙනසක් නොමැති බව ඔබට පෙනෙනු ඇත.

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.