4

相対レイアウトの子ビューにパラメーターを設定するために使用する必要のある構文を正確に見つけるのに問題があります。このように2つの子テキストビューを並べて設定したいルート相対レイアウトがあります

---------- ---------
| 2番目| | 最初|
---------- ---------

ので、私は持っています

public class RL extends RelativeLayout{

    public RL(context){

        TextView first = new TextView(this);
        TextView second = new TextView(this);

        first.setText('First');
        first.setId(1);

        second.setText('Second');
        second.setId(2);

        addView(first, new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT,
    LayoutParams.WRAP_CONTENT, 
    LayoutParams.ALLIGN_PARENT_RIGHT ???);

        addView(first, new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT,
    LayoutParams.WRAP_CONTENT, 
    LayoutParams.ALLIGN_RIGHT_OF(first.getId()) ???);

    }
}

相対的な配置を設定するにはどうすればよいですか?

4

2 に答える 2

14
public class RL extends RelativeLayout {

    public RL(Context context) {
        super(context);

        TextView first = new TextView(context);
        TextView second = new TextView(context);

        first.setText("First");
        first.setId(1);

        second.setText("Second");
        second.setId(2);

        RelativeLayout.LayoutParams lpSecond = new RelativeLayout.LayoutParams(
            LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
        addView(second, lpSecond);

        RelativeLayout.LayoutParams lpFirst = new RelativeLayout.LayoutParams(
            LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
        lpFirst.addRule(RelativeLayout.RIGHT_OF, second.getId());
        addView(first, lpFirst);
    }

}

ビューの右端をその親の右端に揃えたい場合にのみ、ALIGN_PARENT_RIGHTが必要です。この場合、「最初の」ビューが表示領域の側面から押し出されます。

于 2010-10-07T22:44:04.857 に答える
3

Falmarri、「addRule(int)」メソッドを使用する必要があります。

RelativeLayout.LayoutParams lp = new RelativeLayout.LayoutParams
    (LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
lp.addRule(RIGHT_OF, first.getId());

addRuleに使用できる定数の完全なリストは、次の場所にあります: http ://developer.android.com/reference/android/widget/RelativeLayout.html

そして、ここにaddRuleメソッドリファレンスがあります: http ://developer.android.com/reference/android/widget/RelativeLayout.LayoutParams.html#addRule(int、%20int )

于 2010-10-07T20:06:30.383 に答える