如何将 BottomNavigationView 与 NavigationView 一起对齐到 Activity 的底部?
Posted
技术标签:
【中文标题】如何将 BottomNavigationView 与 NavigationView 一起对齐到 Activity 的底部?【英文标题】:How to align BottomNavigationView to the bottom on an activity along with NavigationView? 【发布时间】:2017-08-13 08:05:29 【问题描述】:我正在尝试在同一个活动中实现BottomNavigationView
和NavigationView
,但BottomNavigationView
似乎没有走到最后。
由于 BottomNavigationView 位于活动的中心。我通过互联网浏览了这个问题,但没有找到任何解决方案。
我的 XML 代码:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
android:layout_
android:layout_
android:id="@+id/main_content">
<include layout="@layout/search_toolbar"/>
</RelativeLayout>
<android.support.design.widget.NavigationView
android:id="@+id/main_drawer"
android:layout_
android:layout_
app:menu="@menu/navigation_menu"
android:layout_gravity="start"
app:itemTextColor="#e6000000"
app:itemIconTint="#8c000000"
app:headerLayout="@layout/navigation_header">
</android.support.design.widget.NavigationView>
<android.support.design.widget.BottomNavigationView
android:id="@+id/bottom_navigation_bar"
android:layout_
android:layout_
android:layout_gravity="bottom"
android:itemBackground="@color/colorPrimary"
app:menu="@menu/bottom_navigation" />
显示错误: onMeasureError
java.lang.IllegalStateException: Child android.support.design.widget.BottomNavigationView64f98f6c V.E...... ......I. 0,0-0,0 #7f0c0080 app:id/bottom_navigation_bar at index 2 does not have a valid layout_gravity - must be Gravity.LEFT, Gravity.RIGHT or Gravity.NO_GRAVITY
at android.support.v4.widget.DrawerLayout.onMeasure_Original(DrawerLayout.java:1112)
at android.support.v4.widget.DrawerLayout.onMeasure(DrawerLayout.java)
at android.view.View.measure(View.java:19734)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6120)
at android.widget.FrameLayout.onMeasure(FrameLayout.java:185)
at android.view.View.measure(View.java:19734)
at android.widget.RelativeLayout.measureChildHorizontal(RelativeLayout.java:715)
at android.widget.RelativeLayout.onMeasure(RelativeLayout.java:461)
at android.view.View.measure(View.java:19734)
at com.android.layoutlib.bridge.impl.RenderSessionImpl.measureView(RenderSessionImpl.java:589)
at com.android.layoutlib.bridge.impl.RenderSessionImpl.inflate(RenderSessionImpl.java:342)
at com.android.layoutlib.bridge.Bridge.createSession(Bridge.java:429)
at com.android.ide.common.rendering.LayoutLibrary.createSession(LayoutLibrary.java:368)
at com.android.tools.idea.rendering.RenderTask$2.compute(RenderTask.java:567)
at com.android.tools.idea.rendering.RenderTask$2.compute(RenderTask.java:549)
at com.intellij.openapi.application.impl.ApplicationImpl.runReadAction(ApplicationImpl.java:863)
at com.android.tools.idea.rendering.RenderTask.createRenderSession(RenderTask.java:549)
at com.android.tools.idea.rendering.RenderTask.lambda$inflate$1(RenderTask.java:680)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
【问题讨论】:
【参考方案1】:试试这个:
<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_
android:layout_>
<RelativeLayout
android:id="@+id/main_content"
android:layout_
android:layout_>
<include layout="@layout/search_toolbar" />
<android.support.design.widget.BottomNavigationView
android:id="@+id/bottom_navigation_bar"
android:layout_
android:layout_
android:layout_alignParentBottom="true"
android:itemBackground="@color/colorPrimary"
app:menu="@menu/bottom_navigation" />
</RelativeLayout>
<android.support.design.widget.NavigationView
android:id="@+id/main_drawer"
android:layout_
android:layout_
android:layout_gravity="start"
app:headerLayout="@layout/navigation_header"
app:itemIconTint="#8c000000"
app:itemTextColor="#e6000000"
app:menu="@menu/navigation_menu" />
</android.support.v4.widget.DrawerLayout>
【讨论】:
非常感谢。这解决了我的问题。再次感谢。 我已经寻找解决方案 1 周了。你救了我的命。非常感谢以上是关于如何将 BottomNavigationView 与 NavigationView 一起对齐到 Activity 的底部?的主要内容,如果未能解决你的问题,请参考以下文章
如何将高程(阴影)添加到我的 BottomNavigationView。默认情况下不会出现
如何更改选定的 BottomNavigationView 图标大小
如何在Android的BottomNavigationView中设置填充项
BottomNavigationView - 如何避免重新创建片段并重用它们
如何使用 Kotlin 在 android 中的 BottomNavigationView 上设置 OnNavigationItemListener?