【问题标题】:android Bottom app bar is not taking full width even after setting width to match parent即使在设置宽度以匹配父级之后,android底部应用栏也没有采用全宽
【发布时间】:2023-03-14 15:15:02
【问题描述】:

我的底部应用栏是底部导航视图和左侧的小黑条(请检查Screenshot ) 即使将宽度设置为 match_parent。

当我使用没有底部应用栏的底部导航视图时效果很好,但我希望它们两个一起使用,

我已尝试将边距设置为右侧,但它仍然没有向左移动并占据整个宽度。

我的布局文件在下面,

<?xml version="1.0" encoding="utf-8"?>
<androidx.drawerlayout.widget.DrawerLayout 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/drawer_layout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:fitsSystemWindows="true"
    tools:context="com.recipeapp.marathi.activities.HomeActivity">

    <androidx.coordinatorlayout.widget.CoordinatorLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <com.google.android.material.appbar.AppBarLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:background="#ffffff">

            <androidx.appcompat.widget.Toolbar
                android:id="@+id/toolbarHome"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_gravity="center"
                app:title="@string/app_name"
                app:titleTextColor="@color/black" />

        </com.google.android.material.appbar.AppBarLayout>


        <include layout="@layout/content_main" />

        <com.google.android.gms.ads.AdView xmlns:ads="http://schemas.android.com/apk/res-auto"
            android:id="@+id/adView"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="bottom|center_horizontal"
            android:layout_marginBottom="?attr/actionBarSize"
            ads:adSize="BANNER"
            ads:adUnitId="@string/admob_banner_adunit_id">

        </com.google.android.gms.ads.AdView>





        <com.google.android.material.bottomappbar.BottomAppBar
            android:background="@color/white"
            android:id="@+id/bottomappbar"
            android:layout_gravity="bottom"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            app:fabCradleMargin="10dp"
            app:fabCradleRoundedCornerRadius="10dp"
            app:fabCradleVerticalOffset="10dp">

            <com.google.android.material.bottomnavigation.BottomNavigationView
                android:id="@+id/bottom_navigation"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:background="#fff"
                app:itemIconTint="@color/bottom_nav_item"
                app:itemTextColor="@color/bottom_nav_item"
                app:menu="@menu/nav_menu" />
        </com.google.android.material.bottomappbar.BottomAppBar>

        <com.google.android.material.floatingactionbutton.FloatingActionButton
            android:id="@+id/floatingActionButton"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:contentDescription="@string/todo"
            android:src="@drawable/ic_share"
            app:layout_anchor="@id/bottomappbar"
            app:layout_anchorGravity="bottom|center" />

    </androidx.coordinatorlayout.widget.CoordinatorLayout>

    <com.google.android.material.navigation.NavigationView
        android:background="@drawable/round_nav"
        android:foreground="?attr/selectableItemBackground"
        android:id="@+id/nav_view"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:layout_gravity="start"
        android:visibility="visible"
        app:headerLayout="@layout/nav_header_main"
        app:menu="@menu/menu_drawer_navigation" />

</androidx.drawerlayout.widget.DrawerLayout>

请帮忙..

【问题讨论】:

    标签: java android xml layout bottomnavigationview


    【解决方案1】:

    Relevant documentation

    这个问题也被herehere 讨论过

    app:contentInsetEnd="0dp"
    app:contentInsetStart="0dp"
    

    在你的com.google.android.material.bottomappbar.BottomAppBar 中是最简单的

    示例代码:

    <com.google.android.material.bottomappbar.BottomAppBar
                android:background="@color/white"
                android:id="@+id/bottomappbar"
                android:layout_gravity="bottom"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                app:fabCradleMargin="10dp"
                app:fabCradleRoundedCornerRadius="10dp"
                app:contentInsetEnd="0dp"
                app:contentInsetStart="0dp"
                app:fabCradleVerticalOffset="10dp">
    
                <com.google.android.material.bottomnavigation.BottomNavigationView
                    android:id="@+id/bottom_navigation"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:background="#fff"
                    app:itemIconTint="@color/bottom_nav_item"
                    app:itemTextColor="@color/bottom_nav_item"
                    app:menu="@menu/menu_drawer_navigation"
                    />
    </com.google.android.material.bottomappbar.BottomAppBar>
    
    <com.google.android.material.floatingactionbutton.FloatingActionButton
                android:id="@+id/floatingActionButton"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:src="@drawable/ic_launcher_background"
                app:layout_anchor="@id/bottomappbar"
                app:layout_anchorGravity="bottom|center" />
    

    【讨论】:

    • Fab 按钮在导航视图后面,所以我用底栏包裹它,请告诉解决方案
    • 我错了,我已经编辑了我的解决方案,它应该是你想要的
    • 非常感谢,它成功了,但是这些属性是什么意思? @Teh
    • 它只是删除了工具栏默认具有的插图 我已经编辑了答案以包含更多信息
    • 我搜索了有关 insets 的文档,但没有找到 ContentsetStart 或 ContentInsetEnd 属性,为什么底部应用栏默认不占全宽?
    猜你喜欢
    • 2020-02-20
    • 1970-01-01
    • 2017-02-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-20
    • 1970-01-01
    • 2018-06-23
    • 1970-01-01
    相关资源
    最近更新 更多