使用 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 提供给规则