【问题标题】:Android, new support lib 25, BottomNavigationView implementationAndroid,新支持 lib 25,BottomNavigationView 实现
【发布时间】:2016-10-20 07:51:36
【问题描述】:

随着支持 lib ver 25 的发布,谷歌生成了新的 BottomNavigationView 作为新的 API:

android.support.design.widget.BottomNavigationView 类实现了 Material Design 规范中的底部导航模式。

遗憾的是,这似乎不是真的,也没有真正的文档。显然,BottomNavigationView:

  1. 不像使用xmlns:design="http://schema.android.com/apk/res/android.support.design" 描述的那样工作
  2. 不支持不同的标签颜色或漂亮的圆形显示颜色效果
  3. 不提供任何用于自动隐藏的协调器布局行为
  4. 不适用于小吃店或 FAB
  5. 不适用于透明导航栏
  6. 未提及平板电脑

如何在项目中实现这一点?以及如何设置样式以使其真正实现底部导航模式?

【问题讨论】:

  • 我想知道你为什么要给我否定却没有回复!!!多么肮脏的世界:|
  • 想知道。新的 BottomNavigationView 不提供任何文档,而且很烂。
  • 我认为你提出了一个有趣的问题,Velikodniy 提供的答案对于任何想要实现这个新的 BottonNavigationView 的人来说都非常有用。当前文档没有说明如何实现它。
  • 它不能解决你的问题,但它是一个基本的实现:stackoverflow.com/documentation/android/7565/…

标签: android android-support-library


【解决方案1】:

添加到您的活动中

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    ...>

    ...

    <android.support.design.widget.BottomNavigationView
        android:id="@+id/navigation"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="bottom"
        app:menu="@menu/my_navigation_items" />

    ...

</FrameLayout>

描述菜单:

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <item
        android:id="@+id/add"
        android:icon="@android:drawable/ic_menu_add"
        android:title="add" />
    <item
        android:id="@+id/delete"
        android:icon="@android:drawable/ic_menu_delete"
        android:title="delete" />
    <item
        android:id="@+id/call"
        android:icon="@android:drawable/ic_menu_call"
        android:title="call" />
</menu>

然后你可以设置监听器:

bottomNavigationView.setOnNavigationItemSelectedListener(new BottomNavigationView.OnNavigationItemSelectedListener() {
    @Override
    public boolean onNavigationItemSelected(@NonNull MenuItem item) {
        // ...
        return true;
    }
});

您可以在这里获取更多信息:https://developer.android.com/reference/android/support/design/widget/BottomNavigationView.html

【讨论】:

  • 谢谢,和FAB结合怎么样?还要处理Snackbar吗?
  • Snackbar 构造函数中,您应该提供布局以使用第一个参数显示它。如果您想在BottomNavigationView 后面显示它,请尝试调用带有 FrameLayout 链接的 Snackbar。
  • 文档显示了添加菜单项设计而不是 app:menu 的以下方式。
【解决方案2】:

回复晚了,但下面的解决方案可以节省别人的时间。请检查以下几点。

  1. 从版本 25+ 开始支持底部导航视图。
  2. 将您的 SDK 更新到最新版本。
  3. 将项目目标 sdk 版本设置为 25。
  4. 在应用程序 build.gradle 中设置以下配置。

compile 'com.android.support:appcompat-v7:25.3.1' compile 'com.android.support:design:25.3.1' compile 'com.android.support:support-vector-drawable:25.3.1'

【讨论】:

  • BottomNavigationView 从 Api 25+ 支持的理论是错误的,因为它在 Kitkat Api 19 中进行了测试并且工作正常
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-07-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多