使用导航抽屉并在其中显示ListView时出现问题。当用户单击导航抽屉中的项目时,它会在片段之间切换以显示所请求的片段。在一个片段中,我有一个ListView,我注意到当我切换到另一个片段并返回到包含ListView的片段时,所有的项目都消失了。我也注意到,SwipeRefreshLayout停止工作。我该如何解决这个问题?
我正在使用的导航抽屉:
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<include android:id="@+id/toolbar" layout="@layout/toolbar" />
<android.support.v4.widget.DrawerLayout
android:id="@+id/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent">
<FrameLayout
android:id="@+id/frame_container"
android:layout_width="match_parent"
android:layout_height="match_parent" />
<ListView
android:id="@+id/lv_drawer_menu"
android:layout_width="240dp"
android:layout_height="match_parent"
android:layout_gravity="start"
android:choiceMode="singleChoice"
android:background="#fff"
android:divider="@null"
android:dividerHeight="0dp"
android:drawSelectorOnTop="true"/>
</android.support.v4.widget.DrawerLayout>
</LinearLayout>
我正在使用此代码在片段之间切换:
private void setFragment(int position, Class<? extends Fragment> fragmentClass) {
invalidateOptionsMenu();
try {
Fragment fragment = fragmentClass.newInstance();
FragmentManager fragmentManager = getSupportFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
fragmentTransaction.replace(R.id.frame_container, fragment, fragmentClass.getSimpleName());
fragmentTransaction.commit();
toolbar.setTitle(fragmentTitles[position]);
drawerMenu.setItemChecked(position, true);
drawerLayout.closeDrawer(drawerMenu);
drawerMenu.invalidateViews();
} catch (Exception e) {
e.printStackTrace();
}
}