[英]Android: Align a Button to the Right in LinearLayout
我有一段代码可用来创建新的LinearLayout
。 在布局中,我希望添加一个同时包含标签和值的TextView
。 然后在右边的它旁边,我要显示该按钮。 我希望按钮位于屏幕末端,而无需拉伸按钮。 我对按钮的宽度和高度WARP_CONTENT
感到满意。
如何在代码中实现? 我几乎没有任何XML
因此不能选择使用XML
。 我试图使该应用程序尽可能地动态,因此我决定避开XML
。
请参见下面的代码:
// Build a button
final Button addButton = new Button(task.getParent());
addButton.setText("Add New");
addButton.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View v)
{
// Open a file picker here to let the user pick a file
}
});
// Build a new layout to hold all the elements
LinearLayout verticalLayout = new LinearLayout(task.getParent());
verticalLayout.setOrientation(LinearLayout.HORIZONTAL);
verticalLayout.addView(sizeTextView);
verticalLayout.addView(addButton);
预先谢谢你们。
尝试以下操作:在TextView和Button之间添加空间(视图)。
// View space = new View(parent_context);
View space = new View(task.getParent());
// Width:0dp, Height:1 & Weight: 1.0
LinearLayout.LayoutParams spaceLP = new LinearLayout.LayoutParams(0, 1, 1.0f);
space.setLayoutParams(spaceLP);
verticalLayout.addView(sizeTextView);
verticalLayout.addView(space);
verticalLayout.addView(addButton);
添加具有大小和引力的textview,如下所示:
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT,LinearLayout.LayoutParams.WRAP_CONTENT);
params.setLayoutDirection(Gravity.RIGHT|Gravity.CENTER_VERTICAL);
verticalLayout.addView(sizeTextView,params);
为此,您应该使用相对布局和RelativeLayout.LayoutParams。 通过使用LayoutParams,您可以设置规则以根据需要对齐视图。
例如
RelativeLayout.LayoutParams params = (RelativeLayout.LayoutParams)button.getLayoutParams();
params.addRule(RelativeLayout.ALIGN_PARENT_RIGHT);
params.addRule(RelativeLayout.LEFT_OF, R.id.id_to_be_left_of);
button.setLayoutParams(params);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.