我使用新的NavigationView从修订22.2.0的支持库由谷歌。它的工作非常好,以生成一个抽屉菜单填充使用菜单res。
我想知道是否可以将ListView或RecyclerView添加到导航抽屉中,以便使用我的自定义适配器代码填充它,这比菜单资源具有更大的灵活性。
以下是我当前的XML:
<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.widget.DrawerLayout
android:id="@+id/drawer_layout"
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
tools:context=".MainActivity">
<FrameLayout
android:id="@+id/content_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<include layout="@layout/main_toolbar" />
</FrameLayout>
<android.support.design.widget.NavigationView
android:id="@+id/navigation_view"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="start"
app:headerLayout="@layout/navigation_drawer_header"
app:menu="@menu/menu_navigation_drawer" />
</android.support.v4.widget.DrawerLayout>
我应该在XML中的何处添加ListView或RecyclerView?
编辑
根据Basant的建议,我在NavigationView中嵌套了一个ListView。你失去了从菜单中膨胀的能力(据我所知),但是它成功地完成了我想要它做的事情。头XML没有改变,它只是包含在XML中。
新代码:
<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.widget.DrawerLayout
android:id="@+id/drawer_layout"
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
tools:context=".MainActivity">
<FrameLayout
android:id="@+id/content_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<include layout="@layout/main_toolbar" />
</FrameLayout>
<android.support.design.widget.NavigationView
android:id="@+id/navigation_view"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="start">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<include
android:id="@+id/navigation_drawer_header_include"
layout="@layout/navigation_drawer_header" />
<ListView
android:id="@+id/navigation_drawer_list"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_below="@id/navigation_drawer_header_include"/>
</RelativeLayout>
</android.support.design.widget.NavigationView>
</android.support.v4.widget.DrawerLayout>
回应Shubham的评论
这不会像导航视图那样滚动标题视图
我通过将线性布局
放在嵌套滚动视图
中解决了这个问题。现在它与标题一起正确滚动。
<android.support.v4.widget.NestedScrollView
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<include layout="@layout/nav_header_main" />
<android.support.v7.widget.RecyclerView
android:id="@+id/nav_list"
android:layout_width="match_parent"
android:layout_height="@dimen/weight_based_height"
android:layout_weight="1"
android:nestedScrollingEnabled="false"/>
</LinearLayout>
</android.support.v4.widget.NestedScrollView>
如果你想在NavigationView中添加视图,你可以这样做。这样你就没有限制在你的NavigtionView上添加Header。
<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
tools:openDrawer="start">
<include
layout="@layout/app_bar_main"
android:layout_width="match_parent"
android:layout_height="match_parent" />
<android.support.design.widget.NavigationView
android:id="@+id/nav_view"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="start"
android:fitsSystemWindows="false"
>
<LinearLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<include layout="@layout/nav_header_main"
android:id="@+id/my"
/>
<ListView
android:layout_weight="7"
android:layout_width="match_parent"
android:layout_height="0dp"
android:id="@+id/list_view_inside_nav"></ListView>
</LinearLayout>
</android.support.design.widget.NavigationView>
</android.support.v4.widget.DrawerLayout>
看起来像这样
您可以将列表视图
或回收视图
嵌套在导航视图
中。
<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.widget.DrawerLayout
android:id="@+id/drawer_layout"
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
tools:context=".MainActivity">
<FrameLayout
android:id="@+id/content_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<include layout="@layout/main_toolbar" />
</FrameLayout>
<android.support.design.widget.NavigationView
android:id="@+id/navigation_view"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="start"/>
<ListView
android:id="@+id/menuList"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
</android.support.v4.widget.DrawerLayout>
注意:请记住,如果您在其内部使用ListView,您就不能使用NavigationView的头视图。您必须使用要添加的ListView的头视图。不要忘记删除app:菜单
和app:头
字段。
我试图获得卡的列表,并尝试使用小部件,但有错误 我的代码: 我得到的错误是:
本文向大家介绍Android添加图片到ListView或者RecyclerView显示,包括了Android添加图片到ListView或者RecyclerView显示的使用技巧和注意事项,需要的朋友参考一下 先上图 点击+号就去选择图片 实际上这个添加本身就是一个ListView或者 RecyclerView 只是布局有些特殊 item 在Adpater中判断一个数据是不是为0和是不是最后一
接口说明 将数据整合到一个地方进行查询,Wish3DEarth团队新增了添加场景的接口,来进行数据的整合操作 如需调用,请访问 开发者文档 来查看详细的接口使用说明 该接口仅开放给已获取SDK的开发者 API地址 POST /api/scene/1.0.0/add 是否需要登录 是 请求字段说明 参数 类型 请求类型 是否必须 说明 title string form 是 场景名称 descrip
问题内容: 这是我第一次接触android。我正在尝试向我的ListView添加项目。我使用“选项卡”,查看添加项目的唯一方法是更改选项卡,然后返回到第一个选项卡。 我到处搜寻,而且一直都找到 但对我不起作用。 正如我所说,我已经使用固定标签+滑动创建了项目。我只希望有一个列表视图,哪些行具有一个EditText,一个Spinner和一个Button。在用于选项卡的Fragment的底部,我有
我想将集成测试添加到我的Gradle构建(版本1.0)中。它们应该与我的正常测试分开运行,因为它们需要将webapp部署到localhost(它们测试那个webapp)。测试应该能够使用在我的主源集中定义的类。我该怎么做?
问题内容: 最近8个小时我一直在阅读文档,但没有发现任何可以帮助我的东西。大概是,但是没有代码在工作,因为它一直说“找不到图像URL”并引发异常。但是我还有其他项目,从来没有这个问题。 因此,有一个类包含这样的月份: 到目前为止,一切都很好。我什至可以在控制台中对其进行测试,并且效果很好,并且可以按值排序。现在,当我尝试从资源中添加图像时,出现了我之前提到的问题:找不到URL。但是,我只能使用图像