Kan*_*ngh 9 android navigation-drawer android-navigationview
我有一个DrawerLayout封闭的a NavigationView,这个布局活动作为我的应用程序中所有活动的通用导航抽屉.我app:menu在导航视图中提供菜单资源.我有一些菜单项,但我希望一个菜单项可折叠/可扩展,这样当我点击它时,它会展开以显示两个子菜单并在第二次点击时再次折叠.
我已经通过添加另一个子菜单添加<menu>里面的<item>,但不能使之收缩/扩张.
另外,我不想ExpandableListView用于我的目的.相反,我只需要在菜单资源文件中做一些调整.请指出我正确的方向.我搜索Google只是为了查找可折叠列表项的代码,博客和示例ExpandableListView,但是我需要它来使用NavigationView设计支持库中的设计小部件.
这是我的菜单文件代码:
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<group android:checkableBehavior="single">
<item
android:id="@+id/nav_aboutus"
android:title="About Us" />
<item
android:id="@+id/nav_faq"
android:title="FAQs" />
<item
android:id="@+id/nav_share"
android:title="Share" />
<item
android:id="@+id/nav_myaccount"
android:title="My Account" />
<item
android:id="@+id/nav_legal"
android:title="Legal" >
<menu>
<item
android:id="@+id/nav_tnc"
android:title="Terms and Conditions" />
<item
android:id="@+id/nav_pp"
android:title="Privacy Policy" />
</group>
</menu>
</item>
</menu>
Run Code Online (Sandbox Code Playgroud)
我希望法律菜单项可以扩展,有两个子菜单项"条款和条件","隐私政策".
小智 9
有一个技巧可以在不使用ExpandableListView的情况下执行此操作.通常在菜单布局文件中添加这些菜单项,并在项目单击菜单项时隐藏/显示它们,您希望在其下显示它们:
public boolean onNavigationItemSelected(MenuItem item) {
// Handle navigation view item clicks here.
NavigationView nv= (NavigationView) findViewById(R.id.nav_view);
Menu m=nv.getMenu();
int id = item.getItemId();
if (id == R.id.nav_posts) {
boolean b=!m.findItem(R.id.nav_class).isVisible();
//setting submenus visible state
m.findItem(R.id.nav_class).setVisible(b);
m.findItem(R.id.nav_dept).setVisible(b);
m.findItem(R.id.nav_batch).setVisible(b);
m.findItem(R.id.nav_campus).setVisible(b);
return true;
} else if (id == R.id.nav_walls) {
boolean b=!m.findItem(R.id.nav_wall_events).isVisible();
//setting submenus visible state
m.findItem(R.id.nav_wall_events).setVisible(b);
m.findItem(R.id.nav_wall_fun).setVisible(b);
m.findItem(R.id.nav_wall_hadith).setVisible(b);
m.findItem(R.id.nav_wall_news).setVisible(b);
m.findItem(R.id.nav_wall_Poetry).setVisible(b);
return true;
} else if (id == R.id.nav_com) {
m.findItem(R.id.nav_share).setVisible(false);
m.findItem(R.id.nav_send).setVisible(false);
} else if (id == R.id.nav_share) {
} else if (id == R.id.nav_send) {
}
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
drawer.closeDrawer(GravityCompat.START);
return true;
}
Run Code Online (Sandbox Code Playgroud)
菜单布局文件是:
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<group android:checkableBehavior="single">
<item
android:id="@+id/nav_posts"
android:icon="@drawable/ic_menu_camera"
android:title="Posts" />
<item
android:id="@+id/nav_class"
android:title="Class"
android:visible="false" />
<item
android:id="@+id/nav_dept"
android:title="Department"
android:visible="false" />
<item
android:id="@+id/nav_batch"
android:title="Batch"
android:visible="false" />
<item
android:id="@+id/nav_campus"
android:title="Campus"
android:visible="false" />
<item
android:id="@+id/nav_walls"
android:icon="@drawable/ic_menu_gallery"
android:title="Walls" />
<item
android:id="@+id/nav_wall_news"
android:title="News"
android:visible="false" />
<item
android:id="@+id/nav_wall_events"
android:title="Events"
android:visible="false" />
<item
android:id="@+id/nav_wall_fun"
android:title="Fun"
android:visible="false" />
<item
android:id="@+id/nav_wall_hadith"
android:title="Hadith"
android:visible="false" />
<item
android:id="@+id/nav_wall_Poetry"
android:title="Poetry"
android:visible="false" />
</group>
<item
android:id="@+id/nav_com"
android:title="Communicate">
<menu>
<item
android:id="@+id/nav_share"
android:icon="@drawable/ic_menu_share"
android:title="Share" />
<item
android:id="@+id/nav_send"
android:icon="@drawable/ic_menu_send"
android:title="Send" />
</menu>
</item>
</menu>
Run Code Online (Sandbox Code Playgroud)
您可以在导航抽屉中使用可扩展列表视图,我不明白为什么您不想使用它们.有关详细信息,请访问http://developer.android.com/reference/android/widget/ExpandableListView.html
如果您坚持不使用expandableListView,那么另一种方法是使用菜单的OnSelect为该特定项目设计扩展.虽然我真的不知道你为什么要这样,但你只是重新实现了这个轮子.
| 归档时间: |
|
| 查看次数: |
27576 次 |
| 最近记录: |