2013-07-08 149 views
0

我以編程方式聲明瞭具有水平方向的線性佈局。
如何動態設置該佈局的寬度,高度和邊距。
我試着像下面:
如何以編程方式爲佈局設置邊距

  leftMargin = 40; 
     rightMargin = 20; 
     widgetWidth = 300; 
     topMargin = 5; 
     bottomMargin = 5; 
     widgetHeight = 100; 
     LayoutParams params = new LayoutParams((int) widgetWidth, (int) widgetHeight); 
     params.setMargins((int) leftMargin, (int) topMargin, 
       (int) rightMargin, (int) bottomMargin); 
     newHorizontalLayout = new LinearLayout(ctx); 
     newHorizontalLayout.setOrientation(LinearLayout.HORIZONTAL); 
     newHorizontalLayout.setLayoutParams(params); 


但我發現了空指針異常。 任何人都可以幫助我解決他的問題。

+3

?堆棧跟蹤在哪裏? *如果我會爲每個「堆棧跟蹤」句子得到一分錢... * – WarrenFaith

+0

請提供您的logcat – OMAK

+1

也許ctx爲空?您導入了哪些LayoutParams? – Blackbelt

回答

1

首先你必須導入正確的佈局。下面是表列的LayoutParams的例子:

要設置高度和寬度:

TextView tb_row_proName; 
android.widget.TableRow.LayoutParams lp_pro_name = new android.widget.TableRow.LayoutParams(android.widget.TableRow.LayoutParams.WRAP_CONTENT, 
android.widget.TableRow.LayoutParams.WRAP_CONTENT);   
tb_row_proName.setLayoutParams(lp_pro_name); 

要設置餘量:

其中線
int margin = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 1, r.getDisplayMetrics()); 
lp_pro_name.bottomMargin = margin; 
+1

http://java.about.com/od/javasyntax/a/nameconventions.htm - 變量:名稱應該是混合大小寫。 – Fortega

相關問題