|
1
189
如果你想要一个导航抽屉,你应该使用碎片。 上周我学习了这个教程,效果很好: http://developer.android.com/training/implementing-navigation/nav-drawer.html 您也可以从本教程下载示例代码,看看如何做到这一点。 无碎片: 这是您的基本活动代码:
所有其他需要具有导航抽屉的“活动”都应该扩展此“活动”,而不是“活动”本身,例如:
XML格式
编辑:
我自己也遇到过一些困难,所以如果你得到NullPointerExceptions,这里有一个解决方案。在BaseActivity中,将onCreate函数更改为
这就是如何创建一个包含多个活动的导航抽屉的方法,如果您有任何问题,请随时询问。 编辑2:
正如@GregDan所说
|
|
|
2
35
我找到了最好的实现方式。它在 Google I/O 2014 应用程序。
他们使用与凯文相同的方法。如果你能从I/O应用程序中提取出所有不需要的东西,你就可以提取出你需要的一切,谷歌保证这是导航抽屉模式的正确使用。
每个活动都有一个可选的
这与用片段事务替换当前片段的常见方式不同。但是用户没有发现视觉上的差异。 |
|
3
8
因此,这个答案晚了几年,但可能有人会欣赏它。Android给了我们一个新的小工具,它可以更容易地使用一个导航抽屉和几个活动。 android.support.design.widget.NavigationView是模块化的,在菜单文件夹中有自己的布局。使用它的方式是以以下方式包装xml布局:
nav_header_main只是一个LinearLayout,其方向=垂直,用于导航绘图的标题。 activity_main_drawer是res/meenu目录中的一个菜单xml。它可以包含您选择的项目和组。如果你使用AndroidStudio画廊,向导会为你制作一个基本的画廊,你可以看到你的选择。
现在,所有这些最酷的地方是,您可以将每个活动包装在这两个布局中,但使NavigationView(请参见步骤1)始终指向activity_main_drawer(或其他)。这意味着您将在所有活动中使用相同的(*)导航抽屉。
|
|
|
4
8
在一组活动中重用通用导航抽屉的最简单方法 应用程序基线布局.xml
应用程序基础活动.java
|
|
5
6
如果其他人想按照原海报的要求去做,请考虑使用碎片,而不是凯文说的那样。这里有一个关于如何做到这一点的优秀教程: https://github.com/codepath/android_guides/wiki/Fragment-Navigation-Drawer 如果您选择使用活动而不是片段,那么每次导航到新活动时都会遇到导航抽屉被重新创建的问题。这导致每次导航抽屉的呈现都很难看/很慢。 |
|
|
6
5
我的建议是:完全不要使用活动,而是使用片段,并在显示第一个片段的容器(例如Linear Layout)中替换它们。[注意:你可以使用导航图来使用这个概念。Compose进一步减少了制作布局XML的需要,所以我们也可以在那里应用它。] 该代码在Android开发者教程中提供,您只需自定义即可。 http://developer.android.com/training/implementing-navigation/nav-drawer.html 建议您在应用程序中使用越来越多的片段,并且应用程序本地应该只有四个基本活动,除了外部活动(例如FacebookActivity)之外,您在AndroidManifest.xml中提到了这些活动:
[欲了解更多指导,请参阅:https://stackoverflow.com/a/51100507/787399 ] 编码快乐!! |
|
|
7
1
在baseactivity中更新此代码。不要忘记在活动xml中包含drawer_list_header。
不要在你的活动中使用request()。但在点击图像上仍然看不到抽屉。。并且通过拖动,它将在没有列表项的情况下可见。我尝试了很多,但没有成功。需要一些锻炼。。。 |
|
|
8
1
根据@Kevin van Mierlo的回答,您也能够实现多个抽屉。例如,默认菜单位于左侧(开始),另一个可选菜单位于右侧,仅在加载确定片段时显示。 我已经做到了。 |
|
|
9
1
将其用于工具栏.xml
如果要使用,请将其用于导航标头
|
|
|
10
1
我在科特林是这样做的:
抽屉的活动必须继承此
|
|
|
11
1
我的答案只是一个概念性的答案,没有任何源代码。这对像我这样的读者来说可能很有用。 这取决于你最初的方法以及你如何构建你的应用程序。基本上有两种方法。
我个人更喜欢避免在没有任何组织的情况下使用片段和混合的活动。这会使开发变得更加困难,最终会让你陷入困境。如果你已经完成了,重构你的代码。 |
|
|
12
0
下面的视频教程对此进行了详细介绍 Navigation Drawer on Multiple Activities Using Base Activity 制作一个基本导航抽屉活动并将该基本导航抽屉扩展到您想要在其上显示导航抽屉的所有活动是非常容易的,
视频中清楚地解释了所有步骤 |
|
|
13
-1
使用片段在MainActivity中创建导航抽屉。
|
|
|
Malte K · CSS前后括号内容不起作用 10 月前 |
|
|
Gaurav · 如何使用命名路由在Flutter中导航回特定屏幕? 1 年前 |
|
|
Andrew Leto · 使文本根据其下方的颜色动态更改颜色 1 年前 |
|
|
mechanic · Go Router:如何在小部件内实现嵌套导航 1 年前 |
|
|
liesly · 带有下拉菜单链接的完整CSS导航不起作用? 2 年前 |