标签: android-bottomnav

底部应用栏导航图标不是垂直居中

我正在使用,android.support.design.bottomappbar.BottomAppBar但是添加选项菜单时导航图标位于左上角。

不带Option的情况下,其工作正常(center_vertical)。

带有选项菜单

在此处输入图片说明

没有选项菜单

在此处输入图片说明

谁能告诉我如何解决它?

android android-layout android-appbarlayout android-bottomnav bottombar

4
推荐指数
2
解决办法
1446
查看次数

BottomNavigationView 中的所选项目与背景颜色相同

我正在实现底部导航菜单。但未选择菜单中的第一项。我注意到,当我更改栏背景的颜色时,它会显示出来,原因是第一个项目“启用”颜色与导航栏的背景颜色相同。如何更改已启用选项卡以及其余项目的颜色。默认情况下它们是黑色的......假设我想将它们更改为白色。感谢主要活动的图片。http://pctechtips.org/apps/activity.png 菜单 xml 文件

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

    <item
        android:id="@+id/navigation_dashboard"
        android:icon="@drawable/ic_dashboard_black_24dp"
        android:title="@string/title_dashboard" />

    <item
        android:id="@+id/navigation_notifications"
        android:icon="@drawable/ic_notifications_black_24dp"
        android:title="@string/title_notifications" />
</menu>
Run Code Online (Sandbox Code Playgroud)

活动主文件

<?xml version="1.0" encoding="utf-8"?>
<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"
    tools:context=".MainActivity">

    <org.techgeorge.textrecon.PaintView
        android:id="@+id/paintView"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />

    <com.google.android.material.bottomnavigation.BottomNavigationView
        android:id="@+id/bottom_navigation"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="bottom"
        android:layout_alignParentBottom="true"
        android:background="@color/colorPrimary"
        app:menu="@menu/bottom_nav_menu" />

</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)

android bottomnavigationview android-bottomnav material-components material-components-android

3
推荐指数
2
解决办法
6876
查看次数

在片段中隐藏底部导航视图

我想在某些片段中隐藏 bottomNavigationView。

我试过下面的代码,但它有闪烁的效果。(bottomNavigationView 在 nextFragment 变得可见之前隐藏。

    val navController = this.findNavController(R.id.nav_host_home)
    navController.addOnDestinationChangedListener { _, destination, _ ->
    when (destination.id) {
        R.id.searchArticlesFragment -> bnvMain.visibility = View.GONE
        R.id.articleFragment -> bnvMain.visibility = View.GONE
            else -> bnvMain.visibility = View.VISIBLE
        }
    }
Run Code Online (Sandbox Code Playgroud)

我也试过另一个代码。但它会调整片段的大小。并在目标片段中给出 OutOfMemoryException。

    supportFragmentManager.registerFragmentLifecycleCallbacks(object :
        FragmentManager.FragmentLifecycleCallbacks() {
        override fun onFragmentViewCreated(
            fm: FragmentManager,
            f: Fragment,
            v: View,
            savedInstanceState: Bundle?
        ) {
            when (f) {
                is SearchArticlesFragment -> bnvMain.visibility = View.GONE
                is ArticleDetailsFragment -> bnvMain.visibility = View.GONE
                else -> bnvMain.visibility = View.VISIBLE
            }
        }
    }, true)
Run Code Online (Sandbox Code Playgroud)

请帮助我如何以正确和最好的方式隐藏底部导航视图?这是我可以隐藏底部导航视图的唯一方法吗?youtube …

android android-fragments kotlin android-navigation android-bottomnav

3
推荐指数
1
解决办法
2705
查看次数

有没有办法向android Material View底部导航添加圆角?

我正在尝试为底部导航添加圆角,并且我尝试更改宽度和高度但它不起作用。我正在使用相对布局,宽度设置为“fill_parent”,高度设置为“warp_content”我有两个图标登录和注册,我希望整个导航都有圆角。我正在使用 Material Design 底部导航:

  <com.google.android.material.bottomnavigation.BottomNavigationView
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:id="@+id/botttom_navigation"
    app:itemBackground="@android:color/darker_gray"
    app:itemTextColor="@drawable/selector"
    app:itemIconTint="@drawable/selector"
    android:layout_alignParentBottom="true"
    app:menu="@menu/menu_navigation"/>
Run Code Online (Sandbox Code Playgroud)

这是它的样子

这是它的样子

我希望它有这样的圆角。不是漂浮而是角落 圆角

android bottomnavigationview android-bottomnav material-components-android android-bottomnavigationview

3
推荐指数
2
解决办法
2638
查看次数

当 BottomNavigationView 隐藏在另一个片段中时,以编程方式在 CoordinatorLayout 中显示 BottomNavigationView

我使用底部导航视图与hide_bottom_view_on_scroll_behavior. 当用户从第一个片段列表中选择项目时,应用程序将转到详细片段。我想显示底部导航视图,如果它隐藏在该(详细)片段中。

主要活动 xml:

<?xml version="1.0" encoding="utf-8"?>
<androidx.coordinatorlayout.widget.CoordinatorLayout 
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"
android:fitsSystemWindows="true"
tools:actionBarNavMode="standard"
tools:context=".MainActivity">

<com.google.android.material.appbar.AppBarLayout
    android:id="@+id/app_bar"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:theme="@style/AppTheme.AppBarOverlay"
    app:elevation="0dp">

    <com.google.android.material.appbar.CollapsingToolbarLayout
        android:id="@+id/toolbar_layout"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:fitsSystemWindows="true"
        app:contentScrim="?attr/colorPrimary"
        app:layout_scrollFlags="scroll|exitUntilCollapsed">
        <!--app:layout_scrollFlags="scroll|exitUntilCollapsed"-->
        <!--app:layout_scrollFlags="scroll|enterAlways|snap"-->

        <ImageView
            android:id="@+id/expandedImage"
            android:layout_width="match_parent"
            android:layout_height="200dp"
            android:scaleType="centerCrop"
            android:src="@drawable/hrt1"
            android:visibility="gone"
            app:layout_collapseMode="parallax"
            app:layout_collapseParallaxMultiplier="0.7" />

        <androidx.appcompat.widget.Toolbar
            android:id="@+id/toolbar"
            android:layout_width="match_parent"
            android:layout_height="?attr/actionBarSize"
            android:background="?attr/colorPrimary"
            app:layout_collapseMode="pin"
            app:layout_scrollFlags="scroll|enterAlways|snap" />
    </com.google.android.material.appbar.CollapsingToolbarLayout>
</com.google.android.material.appbar.AppBarLayout>

<com.aero51.moviedatabase.ui.CustomViewPager
    android:id="@+id/view_pager"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:isScrollContainer="true"
    app:layout_behavior="@string/appbar_scrolling_view_behavior" />

<com.google.android.material.bottomnavigation.BottomNavigationView
    android:id="@+id/bottom_navigation"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_gravity="bottom"
    android:background="@color/colorPrimary"
    app:itemBackground="@color/colorPrimary"
    app:itemIconTint="@drawable/bottom_navigation_color_selector"
    app:itemTextColor="@drawable/bottom_navigation_color_selector"
    app:layout_behavior="@string/hide_bottom_view_on_scroll_behavior"
    app:menu="@menu/menu_bottom_navigation" />

</androidx.coordinatorlayout.widget.CoordinatorLayout>
Run Code Online (Sandbox Code Playgroud)

我在详细信息片段中尝试使用以下代码,onCreateView但它不起作用:

   bottomNavigationView = (BottomNavigationView) getActivity().findViewById(R.id.bottom_navigation); …
Run Code Online (Sandbox Code Playgroud)

android android-animation android-layout android-fragments android-bottomnav

3
推荐指数
1
解决办法
832
查看次数

Jetpack Compose BottomNavBar 标签重叠 图标

我试图实现 jetpack compose 底部导航栏。但我遇到了这个问题。每当标签没有足够的空间时,它就会与图标重叠。我错过了什么吗?有没有自动截断或缩小文本之类的解决方案?

compose_version = '1.0.0-beta09'

[1]:https://i.stack.imgur.com/gmD34.png

我的代码

override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContent {
            val navController = rememberNavController()
            val items = listOf(
                Screen.Profile,
                Screen.FriendsList,
                Screen.Notification,
                Screen.Setting
            )

            Scaffold(
                bottomBar = {
                    BottomNavigation(
                        backgroundColor = MaterialTheme.colors.surface,
                        elevation = 8.dp
                    ) {
                        val navBackStackEntry by navController.currentBackStackEntryAsState()
                        val currentRoute = navBackStackEntry?.destination?.route
                        items.forEachIndexed { index, screen ->
                            BottomNavigationItem(
                                icon = {
                                    when (index) {
                                        0 -> Icon(Icons.Filled.Person, "Profile")
                                        1 -> Icon(
                                            painterResource(id = R.drawable.ic_friends),
                                            "Friends"
                                        )
                                        2 -> Icon(Icons.Filled.Notifications, "Notification")
                                        else -> …
Run Code Online (Sandbox Code Playgroud)

android android-bottomnav android-jetpack-compose jetpack-compose-navigation

3
推荐指数
1
解决办法
1984
查看次数

android-支持库BottomNavigationView不显示标题

我正在使用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

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

项目 BottomNavigationView 的裁剪标题

当使用设计库'com.android.support:design:28.0.0'BottomNavigationView 错误地显示带有长文本的项目标题时:

在此输入图像描述 我的布局文件:

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout 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:id="@+id/container"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".mvp.ui.activities.MainActivity">

    <android.support.design.widget.CoordinatorLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_marginTop="0dp"
        android:layout_marginBottom="56dp"
        android:layout_above="@+id/navigation"
        android:id="@+id/fragmentContent" />

    <android.support.design.widget.BottomNavigationView
        android:id="@+id/navigation"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_marginEnd="0dp"
        android:layout_marginStart="0dp"
        app:labelVisibilityMode="labeled"
        app:itemHorizontalTranslationEnabled="false"
        android:background="?android:attr/windowBackground"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:menu="@menu/navigation" />

</android.support.constraint.ConstraintLayout>
Run Code Online (Sandbox Code Playgroud)

它看起来很奇怪,因为使用设计库时完全相同的代码com.android.support:design:27.1.1会生成很好的结果:

在此输入图像描述

这怎么可能?对于我尝试使用的新版本的库labelVisibilityMode,但这没有帮助。

app:showAsAction="always"也不行。有任何想法吗?

android navigationbar bottomnavigationview android-bottomnav

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

自定义图标 - 底部导航视图

我有一个 BottomNavigationView 并且想要为选定和未选定状态使用自定义图标。尝试使用选择器但它不起作用。

知道如何放置自定义图标吗?

编辑- 将评论中的代码添加到问题中

<item 
    android:id="@+id/navigation_card" 
    android:icon="@drawable/iv_home_card" 
    app:itemBackground="@drawable/navigation_card" 
    app:showAsAction="ifRoom" tools:ignore="MenuTitle" 
/>
Run Code Online (Sandbox Code Playgroud)

像这样我添加了图标。现在对于选定状态,它用主题颜色描边,但我想用另一个图标替换图标。

我尝试制作选择器但没有用

<selector 
    xmlns:android="schemas.android.com/apk/res/android"> 

    <item android:state_checked="false" 
        android:drawable="@drawable/btn_star_off_normal" /> 

    <item android:state_checked="true" 
        android:drawable="@drawable/btn_star_on_normal" /> 
</selector>
Run Code Online (Sandbox Code Playgroud)
BottomNavigationView.OnNavigationItemSelectedListener mOnNavigationItemSelectedListener = new BottomNavigationView.OnNavigationItemSelectedListener() { 
    @Override 
    public boolean onNavigationItemSelected(@NonNull MenuItem item) { 
        switch (item.getItemId()) { } 
        return false; 
    } 
};
Run Code Online (Sandbox Code Playgroud)

android android-layout bottomnavigationview android-bottomnav

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

BottomSheetDialogFragment 在 LeakCanary 2 中显示内存泄漏,但我不确定为什么?

我浏览了许多帖子,但没有找到任何可以帮助我理解 LeakCanary 报告泄漏的原因。我有一个带有 a 的主要活动,com.google.android.material.bottomappbar.BottomAppBar它显示了 a BottomSheetDialogFragment。当您在底部工作表中选择一个项目时,它会更新一些文本,然后关闭对话框片段。现在使用 LeakCanary 运行它会在出现对话框并选择一个项目时显示泄漏。

泄漏看起来像:

    ====================================
    HEAP ANALYSIS RESULT
    ====================================
    1 APPLICATION LEAKS

    References underlined with "~~~" are likely causes.
    Learn more at https://squ.re/leaks.

    152090 bytes retained by leaking objects
    Signature: 3841703253a9bf9893936b1dd318c9dd54bf5a8
    ????
    ? GC Root: System class
    ?
    ?? android.app.ActivityThread class
    ?    Leaking: NO (MainActivity? is not leaking and a class is never leaking)
    ?    ? static ActivityThread.sCurrentActivityThread
    ?? android.app.ActivityThread instance
    ?    Leaking: NO (MainActivity? is not leaking)
    ?    ? ActivityThread.mActivities …
Run Code Online (Sandbox Code Playgroud)

memory-leaks leakcanary android-bottomnav

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