从右到左填充的LinearLayout

从右到左填充的LinearLayout

我想创建一个带有右侧提交按钮的输入框。它们之间应跨越屏幕的宽度。目前我有:

LinearLayout row= new LinearLayout(context);
row.setOrientation(HORIZONTAL);
row.setGravity(Gravity.RIGHT);
EditText input = new EditText(context);
Button submit = new Button(context);
submit.setText("Submit");
row.addView(submit);
row.addView(input,LayoutParams.FILL_PARENT,LayoutParams.WRAP_CONTENT);
myView.addView(row,LayoutParams.FILL_PARENT,LayoutParams.WRAP_CONTENT);

这样可以正确分配空间:“提交”按钮占用了所需的空间,“输入”按钮占用了剩余的空间,但是方向却是错误的(尽管设置了重力,“提交”按钮仍位于左侧) )。如果除去重力,然后反转将元素添加到行中的顺序,则输入框将占据屏幕的整个宽度,并且“提交”按钮不可见。我究竟做错了什么?

最佳答案

我想说最好使用相对布局并将输入放置在按钮的左侧。但是,如果您确实需要使用线性布局,则可以使用weight参数:

    LinearLayout row= new LinearLayout(context);
    EditText input = new EditText(context);
    Button submit = new Button(context);
    submit.setText("Submit");
    LayoutParams inputParams = new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
    inputParams.weight = 1;
    row.addView(input,inputParams);
    LayoutParams buttonParams = new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
    buttonParams.weight = 0;
    row.addView(submit, buttonParams);

关于java - 从右到左填充的LinearLayout,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3461793/

10-11 10:38