2013-01-24 63 views
0

我一直在尋找這個問題的解決方案現在超過一個小時,但沒有任何工作。 :/setMargins()將無法工作 - Android

我想將我的TextView的頂部邊距設置爲取決於整數位置的值。 但是不知怎麼的利潤率不會出現......

public void addElements(int position, String title,int colour, RelativeLayout ld){ 
      int px = (int) TypedValue.applyDimension(
        TypedValue.COMPLEX_UNIT_DIP, 
        1, 
        res.getDisplayMetrics() 
      ); 

      int pos = 168*px; 

      LayoutParams params; 

      params = new LayoutParams(LayoutParams.MATCH_PARENT,144*px); 
      params.setMargins(0, 168, 0, 0); 

      TextView tv = new TextView(activity); 
      tv.requestLayout(); 
      tv.setBackgroundResource(colour); 
      tv.setText(title); 
      tv.setSingleLine(false); 
      ld.addView(tv, params); 



     } 
+0

它不爲不顯示或一切正常且幅度已關閉工作的? –

+0

「它只是不會工作」請更具體 – ben75

+0

保證金不顯示 – Johannes

回答

1

嘗試

RelativeLayout.LayoutParams params; 

    params = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.MATCH_PARENT,144); 
    params.setMargins(0, 168, 0, 0); 
+0

真棒!非常感謝! – Johannes

0

LayoutMargins保留爲一個ViewGroup的,如RelativeLayout的,的LinearLayout等最常見的意見,例如,以增加額外的間距一個TextView使用填充。

這應該工作:

tv.setPaddingRelative(0,168,0,0);

+0

感謝您的答案!我試過了,但後來它只是添加了一個正常的填充...我想使用保證金(因爲TextView有一個彩色背景) – Johannes