0

次のレイアウトを使用しており、テキストビューを動的に追加したい (表示したいデータに応じて)

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);




    }
}

私は Scrollview を初めて使用しているので、少し問題が発生していますが、主な問題は、相対的なレイアウトのテキストビューが互いに重なることです。各ビュー間のギャップを指定するにはどうすればよいですか??

重複

4

2 に答える 2

2

ビューを RelativeLayout に追加する場合は、そこにビューを追加するだけでよい LinearLayout とは異なり、ビューを配置する場所を設定する必要があります。

これに変えてみて

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

そして、ここでちょっとしたヒントをどうぞ。こんなことしないで

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

これをやってみてください

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

読んで理解したほうがいい

于 2012-04-21T19:05:45.017 に答える
1

各テキストビューの位置、つまりlayout_below、layout_toLeftOfを定義している場所がわかりません...位置が定義されていない場合、相対レイアウトは各ビューを左上隅に積み重ねます。

添加

ディグリーノのようで、同意します。フリング ジェスチャをサポートした水平スクロールが必要な場合は、ScrollView 内の RelativeLayout だけで必要なレイアウト スキームを取得できるはずです。

于 2012-04-21T19:07:18.250 に答える