關於設定android布局檔案Layout

2021-07-05 04:35:33 字數 1259 閱讀 4112

一般情況,當xml檔案中未設定寬和高度時,此時可以new 乙個新的物件,接著,利用**:relativeview.setlayoutparams(new relativelayout.layoutparams(100,200));可以實現,但是如果是這種形式:

relativeview=(relativelayout)findviewbyid(r.layout.grid_item);

那麼就需要viewgroup.layoutparams params= relative.getlayoutparams();

params.height = height-200;

params.width = params.match_parent;

params = new relativelayout.layoutparams(relativelayout.layoutparams.match_parent, height);

relative.setlayoutparams(params);

這樣的寫法,否則會報錯,原因是因為獲取到的layoutparams物件不是原物件。網上還有一種方法,未測試過,:

relativelayout.layoutparams linearparams =  (relativelayout.layoutparams)mscrollview.getlayoutparams();

linearparams.height = middleheight;

mscrollview.setlayoutparams(linearparams);

如果你設定的控制項是 處在 relativelayout 中,就是上面這個,如果是 linerlayout,或者是framelayout,做相應改動即可!

對於子控制項的話,如果需要設定邊距什麼的:

relativelayout.layoutparams lp=new relativelayout.layoutparams
(layoutparams.wrap_content,layoutparams.wrap_content); 

lp.addrule(relativelayout.align_parent_right, relativelayout.true);

lp.addrule(relativelayout.align_parent_top, relativelayout.true);

btn1.setlayoutparams(lp);

這個按道理,也是可以成功的

Android布局檔案經驗

1.父控制項中含有多個子控制項時,往往遵循長子優先的原則,即長子如果很大可能佔滿父空間,使次子們出局 2.假設tablelayout有2行,其中一行未設定列間長度比例,而另一行設定了,則未設定行可能也會遵循設定行的列間長度比例 3.imageview中的scaletype,對android src ...

Android布局檔案選擇

原始碼最簡單 不用巢狀,減少布局view層數 當簡單功能linearlayout可以滿足時,優先選擇linearlayout,處理邏輯相對relativelayout更加簡單。複雜結構,避免巢狀viewgroup,使用hiyachview檢視布局結構及其效能。結構上 view tree扁平化結構。避...

Android 動態設定控制項的布局

在android開發中,常常會動態地生成些控制項,並調調整其布局。那麼,如何動態調整空間的布局,請參閱下面的關鍵 mrlmain relativelayout findviewbyid r.id.rlmain layoutparams layoutparams new layoutparams an...