android - FragmentActivity和导航抽屉

时间:2016-07-27 17:17:43

标签: android android-fragmentactivity android-drawer

问题:当我点击抽屉上的某个项目时,它不会显示应该显示的FragmentActivity。应用程序没问题,我编译它时没有错误,当我点击抽屉中的项目时它不会崩溃

MainActivty

private void displayView(int position) {
    // update the main content by replacing fragments
    FragmentActivity fragment = null;
    switch (position) {
    case 0:
        fragment = new HomeFragment();
        break;
    case 1:
        fragment = new LocateFragment();
        break;
    case 2:
        fragment = new SecureFragment();
        break;
    case 3:
        fragment = new NotificationFragment();
        break;

    default:
        break;
    }

    if (fragment != null) {
        LayoutInflater inflater = getLayoutInflater();
        LinearLayout container = (LinearLayout)findViewById(R.id.frame_container);
        inflater.inflate(R.layout.activity_main,container);
        //FragmentManager fragmentManager = getFragmentManager();
        //fragmentManager.beginTransaction()
                //.replace(R.id.frame_container, fragment).commit();

        // update selected item and title, then close the drawer
        mDrawerList.setItemChecked(position, true);
        mDrawerList.setSelection(position);
        setTitle(navMenuTitles[position]);
        mDrawerLayout.closeDrawer(mDrawerList);
    } else {
        // error in creating fragment
        Log.e("MainActivity", "Error in creating fragment");
    }
}  

activity_main.xml中

<android.support.v4.widget.DrawerLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent">

<!-- Framelayout to display Fragments -->
<LinearLayout
    android:id="@+id/frame_container"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal" />

<!-- Listview to display slider menu -->
<ListView
    android:id="@+id/list_slidermenu"
    android:layout_width="240dp"
    android:layout_height="match_parent"
    android:layout_gravity="start"
    android:choiceMode="singleChoice"
    android:divider="@color/list_divider"
    android:dividerHeight="1dp"        
    android:listSelector="@drawable/list_selector"
    android:background="@color/list_background"/>

1 个答案:

答案 0 :(得分:0)

if (fragment != null) {
  FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
  transaction.add(R.id.frame_container,fragment);
  transaction.commit();
  mDrawerList.setItemChecked(position, true);
  mDrawerList.setSelection(position);
  setTitle(navMenuTitles[position]);
  mDrawerLayout.closeDrawer(mDrawerList);
} 

我想你是在追求这样的事情。您将使用此将片段放入容器视图中。希望它有所帮助