2

プログラムで相対レイアウトを使用しています。複数のテキストビューがありますが、垂直ではなく水平に表示されます。プログラムで段落ビューの時点でそれらを取得するにはどうすればよいですか?

RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT);
                params.addRule(RelativeLayout.CENTER_VERTICAL, RelativeLayout.TRUE);


    int x=10;
    int y=30;
    for(int i=0;i<arrayList.size();i++)
    {
                   String str=arrayList.get(i);
        int strLength=arrayList.size();
        if(arrayList.get(i).equals("Name")){
            y=y+10;
            x=65;
        }
        else
        {
            x=x+strLength+60;
        }

        //tv=(TextView) findViewById(R.id.tv1);
        tv=new TextView(this);
        tv.setText(arrayList.get(i).toString());
        tv.setPadding(x, y, 0, 0);
        layout.addView(tv, params);

    }
     scroll.addView(layout);
    this.setContentView(scroll);
4

2 に答える 2

2

RelativeLayoutには という名前のプロパティがありませんOrientation。それぞれに id を与え、textviewsこのようなルールを追加する必要があります。

tv.addRule(RelativeLayout.BELOW, someOtherView.getId());

したがって、あなたの場合、次のようになると思います。

for(int i=0;i<arrayList.size();i++)
    {
        String str=arrayList.get(i);
        int strLength=arrayList.size();
        if(arrayList.get(i).equals("Name")){
            y=y+10;
            x=65;
        }
        else
        {
            x=x+strLength+60;
        }

        //tv=(TextView) findViewById(R.id.tv1);
                    tv=new TextView(this);
                    tv.setId(i);
                    tv.setText(arrayList.get(i).toString());
                         tv.setPadding(x, y, 0, 0);
                    layout.addView(tv, params);
                    if (i>0)
                        tv.addRule(RelativeLayout.BELOW, i-1);
    }

お役に立てれば。

于 2013-06-27T06:32:17.537 に答える