2015-09-25 51 views
0

我看到本教程,但是當我嘗試將其放入我的材質導航抽屜中時,它不起作用。如何使用recyclerview在導航抽屜(材料抽屜)中放置可擴展列表視圖?

http://www.androidhive.info/2013/07/android-expandable-list-view-tutorial/

有沒有人誰知道如何做到這一點?

我有這樣的代碼:

公共類NavigationDrawerFragment延伸片段實現DrawerCallbacks {

private DrawerCallbacks mCallbacks; 
private RecyclerView mDrawerList; 
private View mFragmentContainerView; 
private DrawerLayout mDrawerLayout; 
private ActionBarDrawerToggle mActionBarDrawerToggle; 
private int mCurrentSelectedPosition; 


HashMap<String, List<String>> listDataChild; 

// ExpandableListAdapter listAdapter; List listDataHeader;

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 
    View view = inflater.inflate(R.layout.fragment_navigation_drawer, container, false); 

    mDrawerList = (RecyclerView) view.findViewById(R.id.drawerList); 

    LinearLayoutManager layoutManager = new LinearLayoutManager(getActivity()); 
    layoutManager.setOrientation(LinearLayoutManager.VERTICAL); 
    mDrawerList.setLayoutManager(layoutManager); 
    mDrawerList.setHasFixedSize(true); 

    final List<NavigationItem> navigationItems = getMenu(); 
    Nav_adapter adapter = new Nav_adapter(navigationItems); 
    adapter.setNavigationDrawerCallbacks(this); 
    mDrawerList.setAdapter(adapter); 
    selectItem(mCurrentSelectedPosition); 

    return view; 
} 


@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

} 


@Override 
public void onAttach(Activity activity) { 
    super.onAttach(activity); 
    try { 
     mCallbacks = (DrawerCallbacks) activity; 
    } catch (ClassCastException e) { 
     throw new ClassCastException("Activity must implement NavigationDrawerCallbacks."); 
    } 
} 

public void setup(int fragmentId, DrawerLayout drawerLayout, Toolbar toolbar) { 
    mFragmentContainerView = getActivity().findViewById(fragmentId); 
    mDrawerLayout = drawerLayout; 
    mActionBarDrawerToggle = new ActionBarDrawerToggle(getActivity(), mDrawerLayout, toolbar, R.string.drawer_open, R.string.drawer_close) { 

     @Override 
     public void onDrawerClosed(View drawerView) { 
      super.onDrawerClosed(drawerView); 
      if (!isAdded()) return; 
      getActivity().invalidateOptionsMenu(); 
     } 

     @Override 
     public void onDrawerOpened(View drawerView) { 
      super.onDrawerOpened(drawerView); 
      if (!isAdded()) return; 
      getActivity().invalidateOptionsMenu(); 
     } 
    }; 


    mDrawerLayout.post(new Runnable() { 
     @Override 
     public void run() { 
      mActionBarDrawerToggle.syncState(); 
     } 
    }); 

    mDrawerLayout.setDrawerListener(mActionBarDrawerToggle); 
} 


public void openDrawer() { 
    mDrawerLayout.openDrawer(mFragmentContainerView); 
} 

public void closeDrawer() { 
    mDrawerLayout.closeDrawer(mFragmentContainerView); 
} 

@Override 
public void onDetach() { 
    super.onDetach(); 
    mCallbacks = null; 
} 





public List<NavigationItem> getMenu() { 
    List<NavigationItem> items = new ArrayList<NavigationItem>(); 
    items.add(new NavigationItem("Chapter 1", getResources().getDrawable(R.drawable.abc_btn_radio_material))); 
    items.add(new NavigationItem("Chapter 2 ", getResources().getDrawable(R.drawable.abc_btn_radio_material))); 
    items.add(new NavigationItem("Chapter 3 ", getResources().getDrawable(R.drawable.abc_btn_radio_material))); 
    items.add(new NavigationItem("Chapter 4 ", getResources().getDrawable(R.drawable.abc_btn_radio_material))); 
    items.add(new NavigationItem("Chapter 5 ", getResources().getDrawable(R.drawable.abc_btn_radio_material))); 
    items.add(new NavigationItem("Chapter 6 ", getResources().getDrawable(R.drawable.abc_btn_radio_material))); 
    items.add(new NavigationItem("Chapter 7 ", getResources().getDrawable(R.drawable.abc_btn_radio_material))); 
    items.add(new NavigationItem("Chapter 8", getResources().getDrawable(R.drawable.abc_btn_radio_material))); 
    items.add(new NavigationItem("Chapter 9", getResources().getDrawable(R.drawable.abc_btn_radio_material))); 
    items.add(new NavigationItem("Chapter 10", getResources().getDrawable(R.drawable.abc_btn_radio_material))); 
    items.add(new NavigationItem("Chapter 11", getResources().getDrawable(R.drawable.abc_btn_radio_material))); 
    items.add(new NavigationItem("Chapter 12", getResources().getDrawable(R.drawable.abc_btn_radio_material))); 
    items.add(new NavigationItem("Chapter 13", getResources().getDrawable(R.drawable.abc_btn_radio_material))); 
    items.add(new NavigationItem("Chapter 14", getResources().getDrawable(R.drawable.abc_btn_radio_material))); 

    return items; 
} 

//hangganan ng listview 

void selectItem(int position) { 
    mCurrentSelectedPosition = position; 
    if (mDrawerLayout != null) { 
     mDrawerLayout.closeDrawer(mFragmentContainerView); 
    } 
    if (mCallbacks != null) { 
     mCallbacks.onNavigationDrawerItemSelected(position); 
    } 
    ((Nav_adapter) mDrawerList.getAdapter()).selectPosition(position); 
} 


public boolean isDrawerOpen() { 
    return mDrawerLayout != null && mDrawerLayout.isDrawerOpen(mFragmentContainerView); 
} 


@Override 
public void onNavigationDrawerItemSelected(int position) { 
    selectItem(position); 
} 

public DrawerLayout getDrawerLayout() { 
    return mDrawerLayout; 
} 

public void setDrawerLayout(DrawerLayout drawerLayout) { 
    mDrawerLayout = drawerLayout; 
} 

}

回答