我创建了一个底部导航栏.我在res下创建一个menu.xml.我将BottomNavigation添加到主布局.
<android.support.design.widget.BottomNavigationView
android:id="@+id/bottom_navigation"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
app:menu="@menu/menu"
app:layout_scrollFlags="scroll|enterAlways|snap"
/>
Run Code Online (Sandbox Code Playgroud)
但我想以编程方式添加项目.我能怎么做?BottomNavigation 指南说明了这一点
可以通过指定菜单资源文件来填充条形内容.每个菜单项标题,图标和启用状态将用于显示底部导航栏项.菜单项也可用于以编程方式选择当前活动的目的地.可以使用MenuItem#setChecked(true)来完成
我知道使用xml是一个填充的解决方案,但不仅仅是创建底部导航的方法.
我在onCreate函数中使用下面的代码添加一个新项:
Menu menu = bottomNavigationView.getMenu();
menu.add(0, id, Menu.NONE, "NEW ITEM");
Run Code Online (Sandbox Code Playgroud)
它无法正常工作.我只能在导航栏上看到一个项目.当我可以按下项目的区域时,项目出现(其他项目消失).
编辑
我发现了问题.如果我在导航栏上放置了3个以上的项目,则会出现此问题.还有一个问题,关于这个问题.解决方案有效!
我正在尝试在BottomNavigationView的菜单项中添加分隔符
所有项目都在底部水平显示,但我无法在其中添加分隔符.
底部导航视图xml:
<android.support.design.widget.BottomNavigationView
android:id="@+id/navigation"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:focusable="false"
app:itemBackground="@color/colorPrimaryDark"
app:itemIconTint="@color/bottom_navigation_selector"
app:itemTextColor="@color/bottom_navigation_selector"
app:layout_anchor="@id/container"
app:layout_anchorGravity="bottom"
app:menu="@menu/bottom_nav_items" />
Run Code Online (Sandbox Code Playgroud)
和bottom_nav_items.xml:
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="@+id/menu_family"
android:checked="false"
android:icon="@drawable/family"
android:title="@string/family" />
<item
android:id="@+id/menu_me"
android:checked="false"
android:icon="@drawable/me"
android:title="@string/me" />
<item
android:id="@+id/menu_blank"
android:checkable="false"
android:enabled="false"
android:title="" />
<item
android:id="@+id/menu_event"
android:checked="false"
android:icon="@drawable/event"
android:title="@string/event" />
<item
android:id="@+id/menu_more"
android:checked="false"
android:icon="@drawable/more"
android:title="@string/more" />
Run Code Online (Sandbox Code Playgroud)
感谢您的支持.
我为我的应用程序使用底部导航视图,并希望删除图标下的文本.我在互联网上寻找它但仍然无法找到解决方案.有没有人用来处理这个请给我你的解决方案.
我想要的就像这样:
我的代码在这里:主要布局包含recyclerview和bottomnavigationview:
<LinearLayout
android:weightSum="10"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.v7.widget.RecyclerView
android:layout_marginTop="20dp"
android:layout_weight="8.5"
android:id="@+id/recyclerview_menu"
android:layout_width="match_parent"
android:layout_height="0dp">
</android.support.v7.widget.RecyclerView>
<android.support.design.widget.BottomNavigationView
android:background="@color/whiteColor"
android:id="@+id/bottom_navigation_bar"
android:layout_weight="1.5"
app:menu="@menu/menu_bottom_navigation"
android:layout_width="match_parent"
android:layout_height="0dp">
</android.support.design.widget.BottomNavigationView>
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
这是bottomnavigation菜单:
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
android:id="@+id/action_favorites"
android:enabled="true"
android:icon="@drawable/ic_search"
android:title="Home"
app:showAsAction="ifRoom" />
<item
android:id="@+id/action_schedules"
android:enabled="true"
android:icon="@drawable/ic_search"
android:title="Search"
app:showAsAction="ifRoom" />
<item
android:id="@+id/action_music"
android:enabled="true"
android:icon="@drawable/ic_search"
android:title="Save"
app:showAsAction="ifRoom" />
<item
android:id="@+id/action_me"
android:enabled="true"
android:icon="@drawable/ic_search"
android:title="Me"
app:showAsAction="ifRoom" />
Run Code Online (Sandbox Code Playgroud)
在MainActivity中:
mBottomBar = (BottomNavigationView)
findViewById(R.id.bottom_navigation_bar);
disableShiftMode(mBottomBar);
public void disableShiftMode(BottomNavigationView view) {
BottomNavigationMenuView menuView = (BottomNavigationMenuView) view.getChildAt(0);
try {
Field shiftingMode = menuView.getClass().getDeclaredField("mShiftingMode");
shiftingMode.setAccessible(true);
shiftingMode.setBoolean(menuView, …Run Code Online (Sandbox Code Playgroud) 我正在使用android支持设计小部件BottomNavigationView来制作我的底部导航项。这是工作的结果:

它有2个问题,第一个问题是没有在项目下显示标题,第二个问题是我要填充项目,我不想在导航上有可用空间,我只想让它们填充空间并在项目之间划分空间。
这是我的菜单代码:
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
android:id="@+id/action_item1"
android:icon="@drawable/phone"
app:showAsAction="ifRoom"
android:title="??????" />
<item
android:id="@+id/action_item2"
android:icon="@mipmap/ic_history"
app:showAsAction="ifRoom"
android:title="????? ????" />
<item
android:id="@+id/action_item3"
android:icon="@drawable/sabad"
app:showAsAction="ifRoom"
android:title="??? ????" />
<item
android:id="@+id/action_item4"
android:icon="@drawable/market2"
app:showAsAction="ifRoom"
android:title="???????" />
</menu>
Run Code Online (Sandbox Code Playgroud)
这是xml代码:
` <RelativeLayout
android:id="@+id/activity_main"
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"
tools:context="com.truiton.bottomnavigation.MainActivity">
<FrameLayout
android:id="@+id/frame_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_above="@+id/navigation"
android:animateLayoutChanges="true">
</FrameLayout>
<android.support.design.widget.BottomNavigationView
android:id="@+id/navigation"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:background="@color/colorPrimary"
app:itemIconTint="#fff"
app:itemTextColor="#F2F2F4"
app:menu="@menu/bottom_navigation_items"/>
</RelativeLayout>`
Run Code Online (Sandbox Code Playgroud)
我该如何解决这个问题?
android android-support-library android-support-design android-bottomnav