使用导航抽屉在片段之间导航

时间:2015-01-22 15:30:13

标签: android listview android-fragments navigation-drawer

我有一个导航抽屉,里面有一个列表视图,以便在我的碎片之间导航。

这是包含我的导航抽屉和列表视图的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不再被调用,我无法在其他片段之间导航。

有什么想法吗?

提前致谢

0 个答案:

没有答案