我想在arrowview
左侧中心垂直方向上homeview
重叠。我尝试使用views
几个但是没有用。它显示重叠但在左上角而不是左中心垂直。请帮帮我。
private RelativeLayout makeContentView1() {
RelativeLayout arrowView = new RelativeLayout(this);
arrowView.setBackgroundResource(R.drawable.image);
//RelativeLayout.LayoutParams relativeParams = (RelativeLayout.LayoutParams)arrowView.getLayoutParams();
//relativeParams.setMargins(0, 80, 0, 0);
//arrowView.setLayoutParams(relativeParams);
arrowView.setGravity(RelativeLayout.CENTER_VERTICAL | RelativeLayout.ALIGN_LEFT);
return arrowView;
}
public void makeLayout() {
homeView = new RelativeLayout(this);
LayoutParams lp = new LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT);
homeView.setLayoutParams(lp);
bodyView = this.makeBodyView();
arrowView = this.makeContentView1(300,300);
homeView.addView(bodyView);
homeView.addView(arrowView);
return homeView;
}
答案 0 :(得分:0)
您可以使用单个RelativeLayout
并对其应用规则来执行您的任务,
使用以下代码来实现此目的,
private RelativeLayout makeContentView1() {
RelativeLayout arrowView = new RelativeLayout(this);
arrowView.setBackgroundResource(R.drawable.image);
return arrowView;
}
public void makeLayout() {
homeView = new RelativeLayout(this);
LayoutParams lp = new LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.MATCH_PARENT);
homeView.setLayoutParams(lp);
bodyView = this.makeBodyView();
arrowView = this.makeContentView1(300,300);
homeView.addView(bodyView);
homeView.addView(arrowView);
RelativeLayout.LayoutParams relativeParams = (RelativeLayout.LayoutParams)arrowView.getLayoutParams();
relativeParams.addRule(RelativeLayout.CENTER_VERTICAL);
arrowView.setLayoutParams(relativeParams);
return homeView;
}