首页 > 解决方案 > BottomNavigationView 未正确显示

问题描述

我添加BottomNavigationView到我MainActivity 的第一次显示没有错,但点击其他项目后,BottomNavigationView奇怪地上下移动。在其他项目中,我从来没有这个问题,我不知道为什么我会得到这个:

ps:在默认片段中(屏幕截图中的第一个)我有一个内容,但在其他片段中,我没有内容。

这是我的MainActivity布局:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 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.activity.MainActivity">

    <FrameLayout
        android:id="@+id/MainActivity_FrameLayout"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_above="@+id/MainActivity_BottomView" />


    <android.support.design.widget.BottomNavigationView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:background="@color/colorPrimary"
        app:menu="@menu/main_bottom_view_menu"
        app:elevation="2dp"
        app:itemTextColor="@android:color/white"
        app:itemIconTint="@android:color/white"
        android:id="@+id/MainActivity_BottomView"/>

</RelativeLayout>

这是如何显示的屏幕截图

单击另一个项目后

当再次选择默认项目时

- - 编辑 - -

我意识到它在使用时发生,CoordinatorLayout在片段中。删除该行后,应用程序可以正常工作。AppBarLayoutCollapsingToolbarLayout

这是我的片段布局:

<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#e2e2e2"
    android:animateLayoutChanges="true"
    android:fitsSystemWindows="true"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    tools:context="com.fragment.MainFragments.ProfileFragment">

    <android.support.design.widget.AppBarLayout
        android:layout_width="match_parent"
        android:background="@color/colorPrimaryDark"
        android:layout_height="wrap_content">

        <android.support.design.widget.CollapsingToolbarLayout
            android:layout_width="match_parent"
            android:fitsSystemWindows="true"
            app:contentScrim="?attr/colorPrimaryDark"
            app:layout_scrollFlags="scroll|exitUntilCollapsed|snap"
            app:titleEnabled="false"
            app:scrimAnimationDuration="300"
            android:layout_height="wrap_content">

            <RelativeLayout
                android:layout_width="match_parent"
                android:background="@color/colorPrimaryDark"
                app:layout_collapseMode="parallax"
                app:layout_collapseParallaxMultiplier="0.7"
                android:layout_height="wrap_content">

                <LinearLayout
                    android:layout_width="140dp"
                    android:gravity="center_horizontal"
                    android:orientation="vertical"
                    android:id="@+id/Profile_InfoContainer"
                    android:layout_centerHorizontal="true"
                    android:layout_height="wrap_content">

                    <com.graymind.applog.customview.CircleImageView
                        android:layout_width="80dp"
                        android:layout_height="80dp"
                        android:id="@+id/Profile_ProfilePhoto"
                        android:layout_marginTop="10dp"
                        android:scaleType="centerCrop"
                        app:srcCompat="@drawable/login_bg"/>

                    <TextView
                        android:layout_width="wrap_content"
                        android:layout_height="25dp"
                        android:textColor="@android:color/white"
                        android:gravity="center"
                        android:id="@+id/Profile_FullName"
                        android:text="FullName"
                        android:textStyle="bold"/>

                    <TextView
                        android:id="@+id/Profile_Id"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:gravity="center"
                        android:text="'@gray_mind75"
                        android:textColor="@android:color/white"
                        android:textStyle="normal" />

                </LinearLayout>

                <TextView
                    android:id="@+id/Profile_Bio"
                    android:layout_width="match_parent"
                    android:layout_below="@+id/Profile_InfoContainer"
                    android:layout_height="wrap_content"
                    android:orientation="vertical"
                    android:paddingStart="10dp"
                    android:paddingEnd="10dp"
                    android:layout_marginBottom="10dp"
                    android:paddingTop="5dp"
                    android:paddingBottom="5dp"
                    android:textSize="12sp"
                    android:lineSpacingExtra="4sp"/>
                    android:textColor="@android:color/white"
                    android:textDirection="rtl" />

                <LinearLayout
                    android:layout_width="match_parent"
                    android:orientation="horizontal"
                    android:weightSum="3"
                    android:layout_below="@+id/Profile_Bio"
                    android:layout_height="50dp">

                    <LinearLayout
                        android:layout_width="0dp"
                        android:layout_height="match_parent"
                        android:layout_weight="1"
                        android:padding="5dp"
                        android:weightSum="1"
                        android:orientation="vertical">

                        <TextView
                            android:layout_width="match_parent"
                            android:layout_height="match_parent"
                            android:layout_weight="0.5"
                            android:text="1234"
                            android:textColor="@android:color/white"
                            android:textSize="@dimen/profile_stats_texts_size"
                            android:gravity="center"
                            tools:ignore="NestedWeights" />

                        <TextView
                            android:layout_width="match_parent"
                            android:layout_height="match_parent"
                            android:layout_weight="0.5"
                            android:textSize="@dimen/profile_stats_texts_size"
                            android:textColor="@android:color/white"
                            android:gravity="center"
                            android:text="@string/post"/>

                    </LinearLayout>

                    <View
                        android:layout_width="1dp"
                        android:layout_height="match_parent"
                        android:background="@color/colorPrimary"/>

                    <LinearLayout
                        android:layout_width="0dp"
                        android:layout_height="match_parent"
                        android:layout_weight="1"
                        android:padding="5dp"
                        android:weightSum="1"
                        android:orientation="vertical">

                        <TextView
                            android:layout_width="match_parent"
                            android:layout_height="match_parent"
                            android:layout_weight="0.5"
                            android:text="1234"
                            android:textSize="@dimen/profile_stats_texts_size"
                            android:textColor="@android:color/white"
                            android:gravity="center"
                            tools:ignore="NestedWeights" />

                        <TextView
                            android:layout_width="match_parent"
                            android:layout_height="match_parent"
                            android:layout_weight="0.5"
                            android:textColor="@android:color/white"
                            android:textSize="@dimen/profile_stats_texts_size"
                            android:gravity="center"
                            android:text="@string/followings"/>

                    </LinearLayout>

                    <View
                        android:layout_width="1dp"
                        android:layout_height="match_parent"
                        android:background="@color/colorPrimary"/>

                    <LinearLayout
                        android:layout_width="0dp"
                        android:layout_height="match_parent"
                        android:layout_weight="1"
                        android:padding="5dp"
                        android:weightSum="1"
                        android:orientation="vertical">

                        <TextView
                            android:layout_width="match_parent"
                            android:layout_height="match_parent"
                            android:layout_weight="0.5"
                            android:text="1234"
                            android:textSize="@dimen/profile_stats_texts_size"
                            android:textColor="@android:color/white"
                            android:gravity="center"
                            tools:ignore="NestedWeights" />

                        <TextView
                            android:layout_width="match_parent"
                            android:layout_height="match_parent"
                            android:layout_weight="0.5"
                            android:textSize="@dimen/profile_stats_texts_size"
                            android:textColor="@android:color/white"
                            android:gravity="center"
                            android:text="@string/followers"/>

                    </LinearLayout>

                </LinearLayout>

            </RelativeLayout>

            <android.support.v7.widget.Toolbar
                android:layout_width="match_parent"
                app:layout_collapseMode="pin"
                android:layout_height="?attr/actionBarSize">
                <RelativeLayout
                    android:layout_width="match_parent"
                    android:layout_height="?attr/actionBarSize">

                    <TextView
                        android:layout_width="wrap_content"
                        android:layout_height="match_parent"
                        android:text="@string/profile"
                        android:gravity="center"
                        android:layout_toStartOf="@+id/Profile_ToolbarProfileIcon"
                        android:textColor="@android:color/white"
                        android:layout_marginEnd="10dp"/>

                    <ImageView
                        android:layout_width="30dp"
                        android:layout_marginEnd="10dp"
                        android:padding="5dp"
                        android:id="@+id/Profile_ToolbarProfileIcon"
                        android:layout_height="match_parent"
                        app:srcCompat="@drawable/ic_profile"
                        android:tint="@android:color/white"
                        android:layout_alignParentEnd="true"/>

                </RelativeLayout>
            </android.support.v7.widget.Toolbar>

        </android.support.design.widget.CollapsingToolbarLayout>

    </android.support.design.widget.AppBarLayout>

    <android.support.v4.widget.NestedScrollView
        android:layout_width="match_parent"
        app:layout_behavior="@string/appbar_scrolling_view_behavior"
        android:id="@+id/ProfilePostsScrollView"
        android:layout_height="match_parent">

        <android.support.v7.widget.RecyclerView
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:requiresFadingEdge="none"
            android:id="@+id/Profile_PostsRecycler"/>

    </android.support.v4.widget.NestedScrollView>
    
</android.support.design.widget.CoordinatorLayout>

提前感谢您的指导。

标签: androidbottomnavigationview

解决方案


将根布局更改为 LinearLayout,如下所示:

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

    <FrameLayout
        android:id="@+id/MainActivity_FrameLayout"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1" />

    <android.support.design.widget.BottomNavigationView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@color/colorPrimary"
        app:menu="@menu/main_bottom_view_menu"
        app:elevation="2dp"
        app:itemTextColor="@android:color/white"
        app:itemIconTint="@android:color/white"
        android:id="@+id/MainActivity_BottomView" />

</LinearLayout>

推荐阅读