4

我在屏幕旋转后突出显示片段内的 ListView 上的项目时遇到问题。由于我的代码灵感来自 ApiDemos 中的 FragmentLayout 示例,因此我对其进行了测试,并且出现了与所述相同的问题:

以纵向模式启动应用程序,选择一个项目,然后以横向模式旋转设备。先前选择的项目正确突出显示,详细信息片段显示正确的文本。切换回纵向模式,然后选择另一个项目。现在,在横向模式下切换时,“第一个”选定项目仍然突出显示,详细信息片段显示正确的文本,即“第二个”选定项目之一。

为什么突出显示错误的项目?列表片段中有对 getListView.setItemChecked(second_item_index, true) 的显式调用,但它使“第一个”项目突出显示。在调用 setItemChecked 之前,我尝试添加 setNotifyOnChange 和/或将所有项目设置为 false,但这没有任何改变。

这是一个错误还是缺少什​​么?

但是,有一个解决方法,我只是实现了 onStart 方法来设置项目:

@Override
public void onStart() {
    super.onStart();
    if (mDualPane) {
        getListView().setItemChecked(mCurCheckPosition, true);
    }
}

我不确定是否应该使用 onStart 在 UI 上工作,但它可以工作。

另一个想法?

4

0 回答 0