在線性布局LinearLayout中,
android:gravity在view中顯示的時(shí)候,View中內(nèi)容控制位置,例如布局中的控件的位置,就是把控件作為布局的內(nèi)容。
android:layout_gravity相對(duì)于父控件,在父控件中顯示的位置。
如果在布局中設(shè)置android:gravity的時(shí)候,在子控件中設(shè)置android:layout_gravity的時(shí)候,android:gravity將失效。
如果在控件中設(shè)置android:gravity的時(shí)候,只是控制控件內(nèi)容的位置。
android:padding是控件中內(nèi)容和控件之間間隔
android:layout_margin是在父控件和子控件之間間隔
要平分屏膜的時(shí)候,要注意點(diǎn),如果只設(shè)置android:layout_weight="1",只是把內(nèi)容的數(shù)據(jù)長(zhǎng)度進(jìn)行平分屏膜,如果不根據(jù)內(nèi)容平分,根據(jù)屏膜寬度平分,要設(shè)置android:layout_width="0dp",這樣才能平分平分,不根據(jù)內(nèi)容平分。
必須要把a(bǔ)ndroid:layout_weight和android:layout_width一起使用,不能單獨(dú)使用,不然會(huì)報(bào)錯(cuò)。
android:layout_weight理解看https://blog.csdn.net/maxwell_nc/article/details/48437869這個(gè)寫不錯(cuò)的,android:Layout_weight根據(jù)控件在占屏膜的權(quán)重,計(jì)算出控件的寬度。
以下是引用https://blog.csdn.net/maxwell_nc/article/details/48437869中的內(nèi)容:
實(shí)際width = 控件的width + 剩余的width * (控件的權(quán)重/總權(quán)重)
情況一 (width為0dp時(shí)):
這時(shí)候假設(shè)有兩個(gè)控件,第一個(gè)權(quán)重為1,第二個(gè)權(quán)重為2,則總權(quán)重為3,代入公式,
第一個(gè)實(shí)際width = 0 + 屏幕寬 * (1/3)= 1/3屏幕寬
第二個(gè)實(shí)際width = 0 + 屏幕寬 * (2/3)= 2/3屏幕寬
情況二 (width為fill_parent或者match_parent時(shí)):
這時(shí)候假設(shè)有兩個(gè)控件,第一個(gè)權(quán)重為1,第二個(gè)權(quán)重為2,則總權(quán)重為3,代入公式,
第一個(gè)實(shí)際width = 屏幕寬 + (-1*屏幕寬) * (1/3)= 2/3屏幕寬
第二個(gè)實(shí)際width = 屏幕寬 + (-1*屏幕寬) * (2/3)= 1/3屏幕寬
注:剩余的width = 屏幕寬 - 第一個(gè)控件width - 第二個(gè)控件width =(-1*屏幕寬)
這樣就出現(xiàn)了,權(quán)重越大,反而占用的比例越少的情況。
使用android:Layout_weight時(shí)候把width和height設(shè)置為0dp(當(dāng)0dp時(shí)則是權(quán)重越大比例越大)