动态导航抽屉中的项目

时间:2016-12-03 10:24:39

标签: android navigation-drawer

我创建Drawer.But我想设置抽屉的Itemlist是动态的.Means从数据库获取数据并设置为drawerList。可能吗?是的还是如何?我也知道静态抽屉。

4 个答案:

答案 0 :(得分:5)

试试这个:

final Menu menu = navigationView.getMenu();
for (int i = 1; i <= 10; i++) {
   menu.add("Runtime item "+ i);
}

答案 1 :(得分:0)

使用列表视图将搜索范围缩小到导航抽屉。如果您有listview,则可以使用适配器操作数据。

检查这个例子。 https://youtu.be/rs4LW3GxOgE

答案 2 :(得分:0)

是的,这可能是你的主要布局:

    <?xml version="1.0" encoding="utf-8"?>
    <android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:id="@+id/login_drawer"
       >

        <LinearLayout
            android:id="@+id/linearlayout"
            android:orientation="vertical"
            android:layout_width="match_parent"
            android:layout_height="match_parent">
//create you toolbar and include in here
        <include
            layout="@layout/tool_bar"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"></include>

        <FrameLayout
            android:id="@+id/fragment_container"
            android:layout_width="match_parent"
            android:layout_height="match_parent"></FrameLayout>

        </LinearLayout>

        <include layout="@layout/drawerlayout" />
    </android.support.v4.widget.DrawerLayout>

你的抽屉布局将是这样的:

   <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/drawer_linear"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
   </LinearLayout>

现在你可以创建另一个布局,它将是抽屉菜单的项目,即如果它的唯一文本然后制作一个只有textview的布局,否则如果它是图像和文本然后相应地进行布局

然后只需使用layoutinflater动态添加此视图(子xml)并在linearlayout中添加视图,如:

linearlayout.addView(childview); 

答案 3 :(得分:0)

感谢@Dev

要动态添加项目,我们可以使用 NavigationView getMenu()方法获取Menu对象,然后我们可以使用将项目添加到导航栏中>菜单对象。

像这样:

final Menu menu = navigationView.getMenu();
for (int i = 1; i <= 3; i++) {
   menu.add("Runtime item "+ i);
}

使用SubMenu,我们可以在其中添加子部分和项目。

// adding a section and items into it
final SubMenu subMenu = menu.addSubMenu("SubMenu Title");
for (int i = 1; i <= 2; i++) {
   subMenu.add("SubMenu Item " + i);
}

//