0

我的情况如下:在我的布局 xml 中,我有一个通用的 LinearLayout 作为主容器,我想基于一个分页系统填充内容,所有内容都包含在单个活动中。

我的Java代码如下:

private void goToPage(int pageNum){
    LinearLayout layout = (LinearLayout)this.findViewById(R.id.layoutRadioGroups);

    //Clear Views
    layout.removeAllViews();

    //Figure out array positions based on page number
    if (pageNum < this.PAGE_NUM)
        this.LAST_QUESTION_START -= this.NUM_PER_PAGE[pageNum];
    else{
        if (pageNum > 0)
            this.LAST_QUESTION_START += this.NUM_PER_PAGE[pageNum - 1];
        else
            this.LAST_QUESTION_START = 0;
    }
    this.PAGE_NUM = pageNum;

    //Grab my array values, create a TextView, and add it to the layout
    for (int i=this.LAST_QUESTION_START; i < this.LAST_QUESTION_START + this.NUM_PER_PAGE[pageNum]; i++){
        TextView tv = new TextView(layout.getContext());
        tv.setText(this.QUESTIONS[i]);
        tv.setId(i);
        layout.addView(tv);
    }
}

所以它清除所有视图(这将只是 TextView 的),找出将制定 TextView 对象的正确数组值,然后将它们添加到我的布局中。

现在第 0 页显示正确,当我单击下一步按钮时,第 1 页也正确显示。但是当我转到第 2 页时,第 1 页的内容仍然存在,第 2 页的内容覆盖在顶部。

我对Android开发相当陌生,所以我不确定我没有刷新某些东西或使某些东西无效,但我很困惑。有什么想法吗?

谢谢!

4

1 回答 1

0

想通了问题。

仅当您将应用程序的 android:windowBackground 设置为 @null 时,才会发生此重叠问题。

如果您只是将 textview 的文本设置为数组值,甚至会发生这种重叠问题。您不必实际将视图添加到布局或任何东西。

故事的道德,一开始就正确设置。

话虽这么说,有没有人知道为什么会发生这种情况?

于 2013-02-16T22:54:30.460 回答