标签: bottomnavigationview

更改BottomNavigationView的图标大小

我一直在尝试新的BottomNavigationView并尝试自定义它.

到目前为止,我已设法通过使用以下内容更改高度和边距:

<dimen name="design_bottom_navigation_height" tools:override="true">75dp</dimen>
<dimen name="design_bottom_navigation_margin" tools:override="true">5dp</dimen>
Run Code Online (Sandbox Code Playgroud)

我想增加图标的大小.

如何才能做到这一点?

编译版本:com.android.support:design:25.0.1

android bottomnavigationview

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

Android Jetpack使用BottomNavigationView导航正确的后台堆栈

Android的程式码实验室用于导航做得很好,说明如何用一起使用的架构组件导航BottomNavigationView.但是,假设我在2个标签BottomNavigationView,TAB1TAB2.让我们说在Tab1中你可以浏览片段Frag1 - > Frag2.现在,每当我去TAB2,然后回到TAB1,片段回栈Frag1,2走了,并与起点更换Frag1一次.

我在应用程序中需要做什么,以便即使我更改标签,BottomNavigationView导航一起保持其后堆栈完好无损?并且,还保持后退/上行按钮行为与指南同步.

以前我通过使用ViewPager和管理后台堆栈来完成这项任务,但这并不像使用新导航的正确方法.

提前致谢!


编辑:

还有一个更详尽的答案在这里.

android android-navigation bottomnavigationview android-architecture-components android-jetpack

9
推荐指数
1
解决办法
2164
查看次数

Android 离开项目选项卡时清除后退栈 BottomNavigation

我正在使用最后一个导航库(版本 2.4.0),其中包括多个带有底部导航视图的返回堆栈。

默认行为是当用户返回选项卡时保存每个返回堆栈。我想在用户离开选项卡时清除后退堆栈。

基于此带有 3 个选项卡的底部导航:

表1 表2 表3
屏幕A1 屏幕B1 屏幕C1
屏幕A2 屏幕B2 屏幕C2

从 Tab1 中,如果用户:

  • 转到屏幕A2
  • 单击 Tab2(显示 ScreenB1)
  • 返回选项卡1
  • 这里我想要 ScreenA1 而不是 ScreenA2 (导航库的默认行为)

谢谢

android android-navigation bottomnavigationview android-bottom-nav-view android-architecture-navigation

9
推荐指数
2
解决办法
1821
查看次数

在BottomNavigationView中强制显示图标和标题支持android

在我的menu.xml文件中为BottomNavigationView添加4个项目后,它仅显示所选项目标题并隐藏所有其他标题.我可以强制显示标题和图标.这是我的代码.

<?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_home"
    android:enabled="true"
    android:icon="@drawable/ic_home_24dp"
    android:title="@string/text_home"
    app:showAsAction="ifRoom" />

<item
    android:id="@+id/action_category"
    android:enabled="true"
    android:icon="@drawable/ic_grid_24dp"
    android:title="@string/text_category"
    app:showAsAction="ifRoom" />

<item
    android:id="@+id/action_me"
    android:enabled="true"
    android:icon="@drawable/ic_me_24dp"
    android:title="@string/text_me"
    app:showAsAction="ifRoom" />

<item
    android:id="@+id/action_setting"
    android:enabled="true"
    android:icon="@drawable/ic_cog_24dp"
    android:title="@string/text_setting"
    app:showAsAction="ifRoom" />
</menu>
Run Code Online (Sandbox Code Playgroud)
<android.support.design.widget.BottomNavigationView
    android:id="@+id/bottom_navigation"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:background="@android:color/white"
    android:elevation="6dp"
    android:translationZ="6dp"
    app:menu="@menu/bottom_navigation_main" />
Run Code Online (Sandbox Code Playgroud)

android android-layout bottomnavigationview

8
推荐指数
4
解决办法
1万
查看次数

在BottomNavigationView中为导航项添加边距

我有一个BottomNavigationView我像这样实例化的:

BottomNavigationView navigationView = findViewById(R.id.bottom_navigation);
navigationView.setOnNavigationItemSelectedListener(this);
Run Code Online (Sandbox Code Playgroud)

/menu/menu.xml 看起来像这样:

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <item
        android:id="@+id/first_id"
        android:icon="@drawable/home_icon"
        android:title="Item" />

    <item
        android:id="@+id/second_id"
        android:icon="@drawable/home_icon"
        android:title="Item" />

    <item
        android:id="@+id/third_id"
        android:icon="@drawable/home_icon"
        android:title="Item" />

    <item
        android:id="@+id/fourth_id"
        android:icon="@drawable/home_icon"
        android:title="Item" />
</menu>
Run Code Online (Sandbox Code Playgroud)

/drawable/home_icon 看起来像这样:

<vector xmlns:android="http://schemas.android.com/apk/res/android"
    android:width="24dp"
    android:height="24dp"
    android:viewportHeight="24.0"
    android:viewportWidth="24.0">
    <path
        android:fillColor="#FFFFF0"
        android:pathData="M10 20v-6h4v6h5v-8h3L12 3 2 12h3v8z"
        android:strokeColor="#FFFFF0"
        android:strokeWidth="1" />
</vector>
Run Code Online (Sandbox Code Playgroud)

如您所见,导航项的按钮周围有边框,但是,边框相互接触。因此我想在菜单按钮之间添加一个边距。我怎样才能做到这一点?

在此处输入图片说明

从屏幕截图中也可以看出,我正在阻止切换模式。我通过调用来做到这一点

BottomNavigationViewHelper.removeShiftMode(navigationView);
Run Code Online (Sandbox Code Playgroud)

使用这里的代码。

按钮周围的边框已添加如下:

int stateListDrawable = drawableStateLists.get(currentFragment);
navigationView.setItemBackgroundResource(stateListDrawable);
Run Code Online (Sandbox Code Playgroud)

whilestateListDrawable指的是StateListDrawable当按下不同的菜单按钮时会发生变化的 a。的StateListDrawable指向XML选择这又是指一个xml形状像这样,例如:

<?xml version="1.0" encoding="utf-8"?> …
Run Code Online (Sandbox Code Playgroud)

java android android-layout android-view bottomnavigationview

8
推荐指数
1
解决办法
4933
查看次数

颤振:使用导航器推送到新屏幕时保持BottomNavigationBar

在iOS中,当我们推送到新的ViewController时,我们有一个UITabBarController永久保留在屏幕的底部.

在Flutter中,我们有一个底部导航栏的脚手架.但是,与iOS不同的是,当我们Navigator.push进入新的屏幕时,这个bottomNavigationBar消失了.

在我的应用程序,我想满足这一要求:主屏幕上有一个bottomNavigationBar与2项(&b)提示画面&.默认情况下,屏幕上一个显示.在屏幕A内,有一个按钮.点击该按钮, Navigator.push筛选Ç.现在在屏幕C中,我们仍然可以看到bottomNavigationBar.轻按项目b,我去筛选.现在,在屏幕,龙头项目bottomNavigationBar,我回去屏幕Ç(不是一个,一个是目前低于Ç在导航层次).

我怎样才能做到这一点?多谢你们.

编辑:我包括一些图片用于演示:

屏幕A 屏幕A.

点击转到C按钮,按到屏幕C 屏幕C

点击底部导航栏内的右侧项目,转到屏幕B 屏幕B.

navigator flutter bottomnavigationview

8
推荐指数
4
解决办法
1万
查看次数

带有中心按钮弧形或驼峰的底部导航

希望使用一个主要的中心操作按钮修改底部导航栏,该按钮改变导航栏本身的形状,或者像这样的弧形 在此处输入图片说明

或者底部导航中的一个驼峰包围着它周围的中心按钮。

如果我必须延长,我很好,BottomNavigationView但我不知道从哪里开始。

我发现了这个类似的问题,但这不是我想要解决的确切问题。

mobile android material-design bottomnavigationview

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

发现多个文件与操作系统独立路径 'META-INF/androidx.legacy_legacy-support-core-utils.version'

我添加了BottomNavigationView,然后事情开始变得复杂。我不知道是什么导致了这个错误,当我构建项目时没问题,但是当我想在模拟器中玩应用程序时 - 会弹出这个错误。

这是我的 build.gradle:

apply plugin: 'com.android.application'

android {
    compileSdkVersion 28
    defaultConfig {
        applicationId "com.example.pokrz.x"
        minSdkVersion 22
        targetSdkVersion 28
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
    packagingOptions {
        exclude 'META-INF/DEPENDENCIES'
        exclude 'META-INF/LICENSE'
        exclude 'META-INF/LICENSE.txt'
        exclude 'META-INF/license.txt'
        exclude 'META-INF/NOTICE'
        exclude 'META-INF/NOTICE.txt'
        exclude 'META-INF/notice.txt'
        exclude 'META-INF/ASL2.0'
    }

}

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation 'com.android.support:appcompat-v7:28.0.0-alpha3'
    implementation 'com.android.support.constraint:constraint-layout:1.1.2'

    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'com.android.support.test:runner:1.0.2'
    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'

    implementation 'com.parse:parse-android:1.16.3'
    implementation 'com.google.android.material:material:1.0.0-beta01'
} …
Run Code Online (Sandbox Code Playgroud)

java android android-studio build.gradle bottomnavigationview

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

如何更改BottomNavigationView徽章背景的颜色?

我已经BottomNavigationView根据这个例子实现了徽章计数 /sf/answers/3943845041/

它工作正常,但我想更改徽章的背景颜色有什么办法吗?

android material-design bottomnavigationview material-components material-components-android

8
推荐指数
1
解决办法
2287
查看次数

Flutter - 禁用底部导航栏动画(增长文本)

我想禁用选定项目的底部导航栏动画,以获得与未选定项目相同的文本/图标大小。

这是我的代码:

 class BottomNavigationBarHome extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return BottomNavigationBar(
        unselectedItemColor: Colors.black38,
        backgroundColor: Colors.white,
        items: [
          BottomNavigationBarItem(
              icon: Icon(BalanceIcon.scale_balance, size: 15.0),
              title: Text('Item 1', style: TextStyle(

              ),)
          ),
          BottomNavigationBarItem(
              icon: Icon(BalanceIcon.scale_balance),
              title: Text('Item 2')
          ),
          BottomNavigationBarItem(
              icon: Icon(BalanceIcon.scale_balance),
              title: Text('Item 3')
          ),
        ]
    );
  }
}
Run Code Online (Sandbox Code Playgroud)

我已经尝试设置相同的字体大小,动画仍然在这里

flutter bottomnavigationview

8
推荐指数
1
解决办法
8052
查看次数