2011-10-27 11 views
1

実行時にtextviewを追加しています。最後の行に収まらない場合は、最後の行または次の行にtextviewを追加します。 RelativeLayoutを使用しようとしています。私はALIGN_PARENT_LEFTのようなparamsを指定しようとしていますが、これは動作しません。だから、私はどのレイアウトを使うべきか尋ねたかったのですが?実行時にTextviewを追加するときに使用するレイアウトは? (アンドロイド)

RelativeLayout ll = (RelativeLayout) findViewById(R.id.categorylayout); 
    // ll.setGravity(Gravity.LEFT); 
     RelativeLayout.LayoutParams params = (android.widget.RelativeLayout.LayoutParams) ll.getLayoutParams(); 
     params.addRule(RelativeLayout.ALIGN_PARENT_LEFT); 
     for(int i =0 ; i<tags.size();i++){ 
      TextView tt = new TextView(this); 
      tt.setText(tags.get(i)); 
      tt.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT)); 
      tt.setBackgroundColor(Color.RED); 
      ll.addView(tt ); 
     } 

答えて

2

:)、私はあなたが

tt.setLayoutParams(params); 

代わりの

tt.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT)); 

を使用するようにあなたもしたい場合がありますのでTextView sが、互いに重複しますが、この方法を意図信じますループ内の垂直方向の整列の場合は.addRule()です。

編集

for(int i =0 ; i<tags.size();i++){ 
    TextView tt = new TextView(this); 
    tt.setText(tags.get(i)); 
    tt.setId(i+1); 

    RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); 
    params.addRule(RelativeLayout.ALIGN_PARENT_LEFT); 
    if (i == 0) 
     params.addRule(RelativeLayout.ALIGN_PARENT_TOP); 
    else 
     params.addRule(RelativeLayout.BELOW, i); 

    tt.setLayoutParams(params)); 
    tt.setBackgroundColor(Color.RED); 
    ll.addView(tt); 
} 

簡単exlpanation:あなたは、各TextViewのIDを設定する(hereが説明したように、RelativeLayoutは各子供のためのIDのみを解決)、およびので、次は、以前よりも低くなります。最初のものは親のトップに位置合わせされています。私はそれをテストしていないが、少なくとも出発点である。

+0

どうしたらいいのですか?例を挙げて? – Arjit

+0

垂直配置の例ですか? – Vladimir

+0

ルールを追加する方法を説明します。私はあなたがこのようなことを言っていたと思います。ありがとう、私はそれを働かせました。 http://stackoverflow.com/questions/3885077/relativelayout-programatically-in-android – Arjit

0

あなたは、このような任意の指定された位置にそれを追加することができますどのように多くのウィジェットXMLファイルで、その後、** vertical_orientaion でLinearLayou **トンを使用して知っている場合:

ll.addView(tt,your_position); 

・ホープこれは役に立ちます。あなたがparamsを使用していない

+0

実際には2つのtextViewを同じ行に追加することはできますが、これを行うと同じ行に2つのtextviewを追加できません – Arjit

関連する問題