标签: bottomnavigationview

如何动态添加菜单到底部导航视图?

Android有新的ui元素 - BottomNavigationView

在此输入图像描述

我不想在xml文件中包含我的菜单.我将从后端收到有关菜单项和订单的信息.我想动态创建它们并设置BottomNavigationViewonCreate()方法中.我可以这样做吗?

android android-view bottomnavigationview

11
推荐指数
3
解决办法
8924
查看次数

BottomNavigationView上的徽章

我试图在BottomNavigationView没有使用任何库的情况下为项目添加徽章,但不知何故BottomNavigationView没有显示徽章(custom_view)

main_view.xml:

 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
  xmlns:tools="http://schemas.android.com/tools"
  xmlns:app="http://schemas.android.com/apk/res-auto"
  android:id="@+id/activity_main"
  android:layout_width="match_parent"
  android:layout_height="match_parent"
  android:paddingBottom="@dimen/activity_vertical_margin"
  android:paddingLeft="@dimen/activity_horizontal_margin"
  android:paddingRight="@dimen/activity_horizontal_margin"
  android:paddingTop="@dimen/activity_vertical_margin"
  tools:context="com.hrskrs.test.MainActivity">

  <FrameLayout
    android:id="@+id/container"
    android:layout_width="match_parent"
    android:layout_height="match_parent" />

  <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:itemBackground="@color/colorPrimary"
    app:itemIconTint="@color/colorAccent"
    app:itemTextColor="@color/colorPrimaryDark"
    app:menu="@menu/bottom_navigation_main" />
</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)

bottom_navigation_menu.xml:

    <menu xmlns:android="http://schemas.android.com/apk/res/android"
  xmlns:app="http://schemas.android.com/apk/res-auto">
  <item
    android:id="@+id/item_test"
    android:icon="@mipmap/ic_launcher"
    android:title="action1"
    app:showAsAction="always" />

  <item
    android:enabled="true"
    android:icon="@mipmap/ic_launcher"
    android:title="action2"
    app:showAsAction="ifRoom" />

  <item
    android:enabled="true"
    android:icon="@mipmap/ic_launcher"
    android:title="action3"
    app:showAsAction="ifRoom" />
</menu>
Run Code Online (Sandbox Code Playgroud)

活动扩展自AppCompatActivity:

@Override
  public boolean onCreateOptionsMenu(Menu menu) {
    menu = bottomNavigationView.getMenu();
    menu.clear();
    getMenuInflater().inflate(R.menu.bottom_navigation_main, menu);
    MenuItem item = menu.findItem(R.id.item_test);
    item = MenuItemCompat.setActionView(item, R.layout.custom_view); …
Run Code Online (Sandbox Code Playgroud)

android android-layout bottomnavigationview material-components material-components-android

11
推荐指数
3
解决办法
6352
查看次数

Android BottomNavigationView项目显示没有文本也布局不会隐藏在滚动上

大家好,我已经实施了design library BottomNavigationView.它的工作完美,但我不知道为什么我的菜单图标没有显示文字也希望它隐藏,向下滚动,如Floating Action Button.但我没有找到任何办法.我阅读了Developers Docs,但我找不到任何解决方案.

这是我的输出 - 项目仅显示未启用的文本

预期输出 - 每个项目都应该包含图像和文本

这是我的xml代码

<android.support.design.widget.BottomNavigationView
                android:id="@+id/bottom_navigation"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                app:itemBackground="@android:color/white"
                app:itemIconTint="@drawable/nav_color_state_list"
                app:itemTextColor="@drawable/nav_color_state_list"
                android:layout_alignParentBottom="true"
                app:menu="@menu/bottom_navigation_menu" />
Run Code Online (Sandbox Code Playgroud)

nav_color_state_list.xml可绘制代码

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:color="@color/colorAccent" android:state_checked="true" />
    <item android:color="@color/textColorSecondary" android:state_checked="false" />
</selector>
Run Code Online (Sandbox Code Playgroud)

bottom_navigation_menu.xml

<?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/menu_home"
        android:title="Home"
        android:icon="@drawable/home_black_36dp"
        app:showAsAction="ifRoom|withText"/>
    <item
        android:id="@+id/menu_notification"
        android:title="Notifications"
        android:icon="@drawable/add_alert_black_36dp"
        app:showAsAction="ifRoom|withText"/>
    <item
        android:id="@+id/menu_call"
        android:title="Call"
        android:icon="@drawable/comment_black_36dp"
        app:showAsAction="ifRoom|withText"/>

    <item
        android:id="@+id/menu_more"
        android:title="More"
        android:icon="@drawable/more_horiz_black_36dp"
        app:showAsAction="ifRoom|withText"/>>
   </menu>
Run Code Online (Sandbox Code Playgroud)

android bottomnavigationview

11
推荐指数
1
解决办法
2万
查看次数

如何在android底部导航视图中更改文本填充

我正在使用Android应用程序的底部导航视图.我增加了图标的大小,但现在图标会在文本上运行.这是我看到的:

在此输入图像描述

这是根据谷歌设计文档的底部导航视图的图表:

在此输入图像描述

数字10,我想改变那个填充,但当我查看导航栏的属性时,我看不到我能做到的地方.如何将其更改为较小的数字?在我的bottom_layout.xml中,我正在设置我的项目,如下所示:

<item
    android:id="@+id/menu_notifications"
    android:title="Professionals"
    android:icon="@drawable/ic_action_name"
    app:showAsAction="ifRoom"
    />
Run Code Online (Sandbox Code Playgroud)

如何更改底部文本填充?

谢谢

android bottomnavigationview

11
推荐指数
1
解决办法
4830
查看次数

如何将新材料BottomAppBar实施为BottomNavigationView

我正在尝试实现通常如下所示的新BottomAppBar:将 BottomAppBar用作BottomNavigationView,就像在Google home应用中这样

我的问题是,因为我只能用菜单资源填充BottomAppBar,所以我不明白如何将按钮对齐以使其看起来像BottomNavigationView(但Fab按钮带有“ cut”),而不是将所有内容都对齐到一侧BottomAppBar的

如何在此新的Material BottomAppBar中添加自定义布局?

或者,是否可以通过Fab按钮的“ cut”实现BottomNavigationView(保留酷炫的默认动画,如新的BottomAppBar)?

android material-design android-appbarlayout bottomnavigationview android-bottomappbar

11
推荐指数
2
解决办法
2945
查看次数

重新选择底部导航选项卡后Android清除后退堆栈

将最新的导航组件与 一起使用BottomNavigationViewNavController现在默认保存和恢复选项卡的状态:

作为此更改的一部分,onNavDestinationSelected()、BottomNavigationView.setupWithNavController() 和 NavigationView.setupWithNavController() 的 NavigationUI 方法现在会自动保存和恢复弹出目的地的状态,从而无需更改任何代码即可支持多个返回堆栈。当使用带有片段的导航时,这是与多个返回堆栈集成的推荐方法。

这很棒!现在,切换选项卡将为您提供最后查看的堆栈。

但是,如果用户重新选择一个选项卡,假设他们已经离开Home -> Detail Page A -> Detail Page B,然后他们选择Home希望返回到默认视图的选项卡,他们仍然会看到Detail Page B

似乎讨论的一部分是处理问题跟踪器中提到的“重新选择选项卡”行为,但我无法找出实现此目的的推荐方法。

NavigationAdvancedSample中包含的所有内容是:

val bottomNavigationView = findViewById<BottomNavigationView>(R.id.bottom_nav)
bottomNavigationView.setupWithNavController(navController)

// Setup the ActionBar with navController and 3 top level destinations
appBarConfiguration = AppBarConfiguration(
        setOf(R.id.titleScreen, R.id.leaderboard,  R.id.register)
    )
setupActionBarWithNavController(navController, appBarConfiguration)
Run Code Online (Sandbox Code Playgroud)

这只是恢复之前的状态,如发行说明中所述。

我们如何检查是否再次点击导航栏项目并清除后堆栈?

android android-navigation bottomnavigationview android-bottomnav android-architecture-navigation

11
推荐指数
3
解决办法
7106
查看次数

几个快速标签切换后,Google BottomNavigationView项目标题消失

activity_main.xml中:

 <android.support.design.widget.BottomNavigationView
    android:id="@+id/bottom_navigation"
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:elevation="4dp"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintHorizontal_bias="0.0"
    app:layout_constraintLeft_toLeftOf="parent"
    app:layout_constraintRight_toRightOf="parent"
    app:layout_constraintTop_toTopOf="parent"
    app:layout_constraintVertical_bias="1.0"
    />
Run Code Online (Sandbox Code Playgroud)

bottom_bar.xml:

<?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/tab_addcard"
    android:enabled="true"
    android:title="@string/addcard"
    android:icon="@drawable/ic_tabicon_addcard"
    app:showAsAction="ifRoom|withText"/>
<item
    android:id="@+id/tab_approvals"
    android:enabled="true"
    android:title="@string/approvals"
    android:icon="@drawable/ic_tabicon_approvals"
    app:showAsAction="always|withText"/>
<item
    android:id="@+id/tab_mycard"
    android:enabled="true"
    android:title="@string/mycard"
    android:icon="@drawable/ic_tabicon_mycard"
    app:showAsAction="always|withText"/>
Run Code Online (Sandbox Code Playgroud)

MainActivity.java:

BottomNavigationView bottombar;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    bottombar= (BottomNavigationView) findViewById(R.id.bottom_navigation);

    bottombar.inflateMenu(R.menu.bottom_bar);
}
Run Code Online (Sandbox Code Playgroud)

我的问题是:在完成从底栏的初始化到添加项目的所有内容之后.一旦我运行它并快速(非常快)地尝试BottomNavigationView突然间中间项目标题文本的项目选项卡之间的切换消失.任何人都可以建议我解决方案吗?

java xml android bottomnavigationview

10
推荐指数
1
解决办法
465
查看次数

如何使用 XML 获取 BottomNavigationView 的高度?

有没有办法BottomNavigationView像这样使用 XML 属性获取高度的高度?attr/actionBarSize

<com.google.android.material.bottomnavigation.BottomNavigationView 
    android:layout_width="match_parent"
    android:background="@color/whiteColor"
    android:layout_height="wrap_content"
    android:layout_gravity="bottom"
    app:menu="@menu/bottom_navigation_menu"
    app:layout_behavior="@string/hide_bottom_view_on_scroll_behavior"
    android:id="@+id/bottomNavigationView"/>
Run Code Online (Sandbox Code Playgroud)

android material-design bottomnavigationview

10
推荐指数
0
解决办法
2211
查看次数

如何结合BottomNavigationView和ViewPager?

我需要帮助来组合 ViewPager 和 BottomNavigationView。但是当我在 ViewPager 工作时滑动屏幕时,该片段与另一个片段堆叠在一起。我该如何解决?

堆叠片段

1

刷卡前的普通片段

1

这是我的代码:

主活动.java

public class MainActivity extends AppCompatActivity implements BottomNavigationView.OnNavigationItemSelectedListener {

private BottomNavigationView mBottomNavigation;
private ViewPager viewPager;
private ViewPagerAdapter mViewPagerAdapter;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    loadFragment(new HomeFragment());
    mBottomNavigation = findViewById(R.id.buttom_navigation);
    mBottomNavigation.setOnNavigationItemSelectedListener(this);

    viewPager = findViewById(R.id.view_pager);
    mViewPagerAdapter = new ViewPagerAdapter(getSupportFragmentManager());
    viewPager.setAdapter(mViewPagerAdapter);
}

private boolean loadFragment(Fragment fragment) {
    if (fragment != null) {
        FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
        ft.replace(R.id.container_frame_layout, fragment);
        ft.commit();
        return true;
    }
    return false;
}

@Override
public boolean onNavigationItemSelected(@NonNull MenuItem menuItem) { …
Run Code Online (Sandbox Code Playgroud)

java android android-fragments android-viewpager bottomnavigationview

10
推荐指数
2
解决办法
1万
查看次数

如何使用嵌套的 navGraph 和底部导航视图进行导航

我有 3 个项目的底部导航视图,我navGraph看起来像这样:

<navigation 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"
app:startDestination="@id/nested_navigation"

<navigation
    android:id="@+id/nested_navigation"
    app:startDestination="@id/mainFragment" >
    <fragment
        android:id="@+id/mainFragment"
        android:name="com.example.app.ui.main.MainFragment"
        android:label="main_fragment"
        tools:layout="@layout/main_fragment" />
    <fragment
        android:id="@+id/list"
        android:name="com.example.app.ui.main.List"
        android:label="fragment_news_list"
        tools:layout="@layout/fragment_list" />
</navigation>

<fragment
    android:id="@+id/settings"
    android:name="com.example.app.ui.main.Settings"
    android:label="Settings" />
</navigation>
Run Code Online (Sandbox Code Playgroud)

带有嵌套 navGraph 片段的底部导航视图中的导航工作正常,但是如果我导航到settings_fragment嵌套 navGraph 之外的 ,并且我单击其他项目/片段我无法导航到其他片段,我基本上卡住在这个屏幕上。

我检查了发生了什么是如果我把settings_fragment嵌套的 navGraph放在里面,它的效果很好。

我该如何解决这个问题?

顺便说一句 - 我很确定它不相关,但设置片段是PreferenceScreen位于 XML 资源中的布局,而不是布局资源

我的菜单项:

<item
    android:id="@+id/mainFragment"
    android:icon="@drawable/ic_home_black_24dp"
    android:title="@string/home"
    app:showAsAction="ifRoom"
    />
<item
    android:id="@+id/list"
    android:icon="@drawable/ic_format_list_bulleted_black_24dp"
    android:title="@string/news_list"
    app:showAsAction="ifRoom"
    />
<item
    android:id="@+id/settings"
    android:icon="@drawable/ic_settings_black_24dp"
    android:title="@string/settings"
    app:showAsAction="ifRoom"
    />
Run Code Online (Sandbox Code Playgroud)

android kotlin android-navigation bottomnavigationview android-jetpack-navigation

10
推荐指数
1
解决办法
1795
查看次数