在RelativeLayout的子视图上设置参数

4

我在寻找设置相对布局子视图参数所需的确切语法。我有一个根相对布局,我想将2个子文本视图并排放置,如下所示:

---------- ---------
| Second | | First |
---------- ---------

所以我有:

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

    }
}

如何设置相对对齐方式?

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。在这种情况下,它会将“第一个”视图推出可见区域的边缘!


是的,我的代码有点错。我现在正在做的是,首先是align_parent_right,然后第二个是align_left_of first.id() - Falmarri

3

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接