我创建Drawer.But我想设置抽屉的Itemlist是动态的.Means从数据库获取数据并设置为drawerList。可能吗?是的还是如何?我也知道静态抽屉。
答案 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);
}
//