2012-04-21 31 views
0

私は、次のレイアウトを使用してtextviewsに動的に別の下の1を追加したいのです(私は表示するデータに応じて)追加するビューを動的に

main.xml 

<?xml version="1.0" encoding="utf-8"?> 
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" > 

    <LinearLayout 
     android:id="@+id/contain" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" > 




    </LinearLayout> 


</ScrollView> 

だから私はこの

public class Feeds extends Activity { 
    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 
     Intent intent=getIntent(); 
     Bundle b=intent.getExtras(); 
     String s= b.getString("datapack"); 

     Log.w("String",s); 
     String data[]=s.split("#"); 




String temp=""; 
     LinearLayout l=(LinearLayout)findViewById(R.id.contain); 
     LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(
       (LayoutParams.WRAP_CONTENT), (LayoutParams.WRAP_CONTENT)); 

     RelativeLayout relative = new RelativeLayout(getApplicationContext()); 
     relative.setLayoutParams(lp); 


     for(int i=1;i<data.length;i++) 
     {Log.w("i data",data[i]); 
      temp=temp + data[i] + ","; 
      Log.w("tag",temp); 
      if(i%5==0) 
      {Log.w("data",temp); 
       TextView tv = new TextView(getApplicationContext()); 
       tv.setLayoutParams(lp); 
       tv.setId(i); 
       tv.setText(temp); 
       relative.addView(tv, lp); 
       temp=null; 

      } 

     } 
     l.addView(relative); 




    } 
} 

Iを試してみました最初にScrollviewを使用していますので、少し問題がありますが、主な問題は、相対レイアウトのtextviewsが重複していることです。各ビュー間のギャップを指定するにはどうすればよいですか?

Overlapping

答えて

1

、すなわちlayout_below、 layout_toLeftOf ...ポジションが定義されていない場合、相対レイアウトは各ビューを左上隅に積み重ねます。

追加

それはdigulinoようだと私は同意するものとします。私はあなたが情事のジェスチャーをサポートして水平方向のスクロールをしたい場合は、あまりにも、あなたがScrollView内部だけRelativeLayoutにしたいレイアウトスキームを得ることができる必要がありますことを多分Horizo​​ntalScrollViewを追加したいと思います。

+0

正確に何を知りたいですか。これらのフィールドはどこに追加しますか? – Sankalp

+0

の追加ルール機能を使用して[layoutParamsを。](http://developer.android.com/reference/android/widget/RelativeLayout.LayoutParams.html) – Sam

1

あなたはビューでは、そこだけ内側にビューを追加する必要があること、のLinearLayoutとは異なる配置する場所を設定する必要がRelativeLayoutにビューを追加している場合。

Tryeこの

LinearLayout layout= new LinearLayout (getApplicationContext()); 
    layout.setLayoutParams(lp); 

に変更し、ここで、あなたは少し先端を行きます。これを行うには、この

if(i%5==0) 
{Log.w("data",temp); 

試みをしないでください

if(i%5==0){ 
    Log.w("data",temp); 

それは読んで理解する方が良いでしょうあなたは、各TextViewのために位置を定義されている場合、私は表示されません

+0

LinearLayoutにlayout_gravityを設定して、ビューが重ならないようにすることも良い方法です。 –