一般情況,當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...