2012-05-04 27 views
0

如何設置gravitymargin自動生成(代碼內)TextViewsButtons?他們在LinearLayout內。設置自動生成的TextView和Button的重力

這裏是我輩代碼:

 for(int i=0; i<num_enter; i++){ 
    final int cuco = i; 
    LinearLayout linlay = new LinearLayout(this); 
    linlay.setOrientation(0); 
    TextView text = new TextView(this); 
    text.setText(name[cuco] + "  "); 
    linlay.addView(text); 
    TextView num = new TextView(this); 
    num.setId(cuco); 
    num.setText("" + current[cuco]); 
    linlay.addView(num); 
    Button minus = new Button(this); 
    minus.setText("-"); 
    minus.setOnClickListener(new OnClickListener() { 

     @Override 
     public void onClick(View v) { 
      // TODO Auto-generated method stub 
      int cval = current[cuco]; 
      int currentF = current[cuco] - 1; 
      current[cuco] = current[cuco] -1; 
      SetSql update = new SetSql(SpellCast.this); 
      update.open(); 
      update.changeCurrent(currentF, cval, name[cuco]); 
      update.close(); 
      ((TextView) findViewById(cuco)).setText("" + currentF); 
     } 
    }); 
    LinearLayout.LayoutParams p = new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT, Gravity.RIGHT); 
    minus.setLayoutParams(p); 
    linlay.addView(minus); 
    Button plus = new Button(this); 
    plus.setText("+"); 
    plus.setOnClickListener(new OnClickListener() { 

     @Override 
     public void onClick(View v) { 
      // TODO Auto-generated method stub 
      int cval = current[cuco]; 
      int currentF = current[cuco] + 1; 
      current[cuco] = current[cuco] + 1; 
      SetSql update = new SetSql(SpellCast.this); 
      update.open(); 
      update.changeCurrent(currentF, cval, name[cuco]); 
      update.close(); 
      ((TextView) findViewById(cuco)).setText("" + currentF); 
     } 
    }); 
    LinearLayout.LayoutParams w = new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT, Gravity.RIGHT); 
    plus.setHeight(LayoutParams.WRAP_CONTENT); 
    plus.setWidth(50); 
    plus.setLayoutParams(w); 
    linlay.addView(plus); 

    main.addView(linlay); 
    } 

希望能找到一種方法來設置按鈕重力而不改變它的大小。

+0

很多人都在試圖幫助...但我們都只是猜測,直到您發佈一些代碼。我知道代碼對你來說似乎很明顯......但是你說所有給出的答案都不起作用,即使他們完美地回答了你的問題 – ByteMe

+0

我用我的代碼更新了 – arielschon12

+0

這與結果的結果是什麼你要? – ByteMe

回答

1

1)獲取TextView的參考說電視。

2)tv.setGravity(Gravity.CENTER);

,並不是與LinearLayout中確定的工作..嘗試相對或絕對

+0

這將只設置文本的重力,而不是TextView – arielschon12

0

使用View.setLayoutParams(ViewGroup.LayoutParams params)LayoutParams查看http://developer.android.com/reference/android/R.styleable.html#ViewGroup_Layout

+0

抱歉,但像下面的答案它不起作用。有沒有另一種方法可能會起作用?我使用了很多按鈕和文字瀏覽,並且使用這種方法,同時在線提供左邊距讓他們站在彼此... – arielschon12

+0

你能發表一個你希望他們如何擺脫的例子嗎? – techiServices

+0

我無法發佈任何示例,我想要的所有方法都是從左邊的自動生成按鈕和文字瀏覽的方式 – arielschon12

0

由於沒有人有解決的利潤率

LinearLayout.LayoutParams p = new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT); 
p.setMargins(10, 10,10,10); 
p.gravity = Gravity.CENTER; 

textView.setLayoutParams(p); 

當使用setLayoutParams確保佈局則params的類型父視圖,在這種情況下,是的LinearLayout

setGravity(Gravity.CENTER);將設置文本的嚴重性相匹配在視圖內

+0

idead聽起來不錯,但實際上它不起作用。它只是讓所有的按鈕粘在一起,所以沒有人看到。沒有其他簡單的解決方案嗎? – arielschon12

+0

好吧,我不知道你的意思是「堅持對方」。如果你發佈了一些如何添加按鈕/文本視圖的代碼,我們可能會幫助更多:) – dymmeh

+0

嗯,真的沒什麼可發佈的。我的意思是按鈕不斷形成在一起,就像另一個按鈕一樣。 – arielschon12