[英]How to set the align parent right attribute of TextViews in relative layout programmatically
[英]How to align views in a relative layout to far left, center, and far right programmatically?
我有一个相对的布局,具有两个按钮和一个textview。 我想发生的事情是在最左侧有一个按钮,在中央有textview,在最右侧有另一个按钮。 尝试在没有XML的情况下执行此操作。
这是我的代码:
RelativeLayout fm = new RelativeLayout(this);
RelativeLayout.LayoutParams lp = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.MATCH_PARENT, RelativeLayout.LayoutParams.WRAP_CONTENT);
fm.setLayoutParams(lp);
fm.setBackgroundColor(Color.CYAN);
Button done = new Button(this);
done.setId(10);
done.setText("Done");
Button save = new Button(this);
save.setId(12);
save.setText("Save");
TextView formManager = new TextView(this);
formManager.setId(11);
formManager.setText("Form Manager");
lp.addRule(RelativeLayout.CENTER_IN_PARENT);
fm.addView(formManager, lp);
lp.removeRule(RelativeLayout.CENTER_IN_PARENT);
lp.addRule(RelativeLayout.ALIGN_PARENT_LEFT);
fm.addView(done, lp);
lp.removeRule(RelativeLayout.ALIGN_PARENT_LEFT);
lp.addRule(RelativeLayout.ALIGN_PARENT_RIGHT);
fm.addView(save, lp);
lp.removeRule(RelativeLayout.ALIGN_PARENT_RIGHT);
mainLayout.addView(fm);
问题是...保存按钮会拉伸并占据整个布局,而且非常细。 基本上,使用此代码不会像我想的那样发生任何事情。 关于如何实现这一目标的任何想法?
尝试这种方式
LinearLayout mainLayout = (LinearLayout) findViewById(R.id.mainLayout);
RelativeLayout fm = new RelativeLayout(this);
RelativeLayout.LayoutParams lp = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.MATCH_PARENT, RelativeLayout.LayoutParams.WRAP_CONTENT);
fm.setLayoutParams(lp);
fm.setBackgroundColor(Color.CYAN);
Button done = new Button(this);
done.setId(10);
done.setText("Done");
Button save = new Button(this);
save.setId(12);
save.setText("Save");
TextView formManager = new TextView(this);
formManager.setId(11);
formManager.setText("Form Manager");
RelativeLayout.LayoutParams lpp = new RelativeLayout.LayoutParams(
RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT);
formManager.setLayoutParams(lpp);
lpp.addRule(RelativeLayout.CENTER_IN_PARENT);
fm.addView(formManager, lpp);
RelativeLayout.LayoutParams doneLayoutParams = new RelativeLayout.LayoutParams(
RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT);
done.setLayoutParams(doneLayoutParams);
doneLayoutParams.addRule(RelativeLayout.ALIGN_PARENT_LEFT);
fm.addView(done, doneLayoutParams);
RelativeLayout.LayoutParams saveLayoutParams = new RelativeLayout.LayoutParams(
RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT);
save.setLayoutParams(saveLayoutParams);
saveLayoutParams.addRule(RelativeLayout.ALIGN_PARENT_RIGHT);
fm.addView(save, saveLayoutParams);
mainLayout.addView(fm);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.