我有一个导航抽屉,里面有一个列表视图,以便在我的碎片之间导航。
这是包含我的导航抽屉和列表视图的XML文件:
<!-- As the main content view, the view below consumes the entire
space available using match_parent in both dimensions. -->
<FrameLayout
android:id="@+id/frame_container"
android:layout_width="match_parent"
android:layout_height="match_parent">
</FrameLayout>
<LinearLayout
android:layout_width="300dp"
android:layout_height="fill_parent"
android:orientation="vertical"
android:background="#454545"
android:layout_gravity="start">
<ListView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id="@+id/list_view_drawer" />
</LinearLayout>
以下是侦听器的实现(当我单击列表中的某个项目时):
mListViewMenu.setOnItemClickListener(new ListView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
Fragment fragment = null;
switch (i) {
case 0:
fragment = new ImageFragment();
break;
case 1:
fragment = new VideoFragment();
break;
case 2:
fragment = new TextFragment();
break;
case 3:
fragment = new MusicFragment();
break;
default:
break;
}
mCurrentMenuSelected = i;
if (fragment != null) {
FragmentTransaction ft = getFragmentManager().beginTransaction();
ft.setCustomAnimations(R.anim.slide_in_left, R.anim.slide_out_left);
ft.replace(R.id.drawer_layout, fragment).commit();
mListViewMenu.setItemChecked(i, true);
mListViewMenu.setSelection(i);
mTitle = mListMenuItems.get(i).getmMenuItem().getmTitle();
getActionBar().setTitle(mTitle);
mDrawerLayout.closeDrawers();
}
}
});
...这里是我的一个片段(在这种情况下是TextFragment)的实现:
public class TextFragment extends Fragment {
@Override
public void onAttach(Activity activity) {
super.onAttach(activity);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View v = inflater.inflate(R.layout.test, container, false);
return v;
}
}
我的问题:当我第一次点击其中一个列表的项目时,我的片段被加载并显示,我的导航抽屉被关闭(暂时没问题)。但是当我重新打开导航抽屉时,我无法再点击我的列表项了... onItemClickListener不再被调用,我无法在其他片段之间导航。
有什么想法吗?
提前致谢