使用 RelativeLayout 参数时视图重叠
View overlapping when using RelativeLayout Parameters
我的 RelativeLayout 动态添加复选框并为每个复选框设置文本,但它们都相互重叠,即使我使用的是 RelativeLayout.BELOW 参数。
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.bible_progress);
Bundle progressBundle = getIntent().getExtras();
int positionBook = progressBundle.getInt("position");
if(positionBook == 0) {
for (int i = 0; i < 10; i++) {
RelativeLayout progressLayout = (RelativeLayout) findViewById(R.id.progress_layout);
CheckBox progressBox = new CheckBox(this);
progressBox.setText("Dynamic Checkbox " + i);
progressBox.setId(i + 10);
RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
params.addRule(RelativeLayout.BELOW, progressBox.getId());
progressBox.setLayoutParams(params);
progressLayout.addView(progressBox);
}
}
}
我没有收到任何错误,因此没有堆栈跟踪。
您为规则提供了错误的 ID
params.addRule(RelativeLayout.BELOW, progressBox.getId());
通过这种方式,您可以将刚刚创建的视图的 ID 提供给规则
我的 RelativeLayout 动态添加复选框并为每个复选框设置文本,但它们都相互重叠,即使我使用的是 RelativeLayout.BELOW 参数。
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.bible_progress);
Bundle progressBundle = getIntent().getExtras();
int positionBook = progressBundle.getInt("position");
if(positionBook == 0) {
for (int i = 0; i < 10; i++) {
RelativeLayout progressLayout = (RelativeLayout) findViewById(R.id.progress_layout);
CheckBox progressBox = new CheckBox(this);
progressBox.setText("Dynamic Checkbox " + i);
progressBox.setId(i + 10);
RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
params.addRule(RelativeLayout.BELOW, progressBox.getId());
progressBox.setLayoutParams(params);
progressLayout.addView(progressBox);
}
}
}
我没有收到任何错误,因此没有堆栈跟踪。
您为规则提供了错误的 ID
params.addRule(RelativeLayout.BELOW, progressBox.getId());
通过这种方式,您可以将刚刚创建的视图的 ID 提供给规则