如何使用recyclerview在导航抽屉(材料抽屉)中放置可扩展列表视图?

问题描述:

我看到本教程,但是当我尝试将其放入我的材质导航抽屉中时,它不起作用。如何使用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; 
} 

}

是的,你可以做到这一点。

下面是视频的例子!你可以检查出来。

http://semycolon.blogspot.in/2014/11/first-android-app-step-13-view-pager.html

如果你正面临特殊问题或有错误,然后把你的代码。