【问题标题】:Floating Action Button null when inside a coordinatorlayout在协调器布局内时浮动操作按钮为空
【发布时间】:2021-12-11 02:05:30
【问题描述】:

我在 coordinatorlayout 中有一个 FAB。目标是将 FAB 锚放置到具有底部导航视图作为子项的应用栏,但 FAB 只是不会出现在屏幕上并在类上返回空对象。 coordinatorlayout在一个FragmentContainerView的同一个范围内,我猜那个view和coordinatorlayout冲突了;

这是我的 XML 代码:

<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"
    android:background="@color/white"
    tools:context="Main.Main_Screen"
    >

    <androidx.fragment.app.FragmentContainerView
        android:id="@+id/main_frag_container"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:name="androidx.navigation.fragment.NavHostFragment"
        app:defaultNavHost="true"
        app:navGraph="@navigation/nav_graph_main"
        />

    <androidx.coordinatorlayout.widget.CoordinatorLayout
        android:layout_width="match_parent"
        android:layout_height="86dp"
        android:layout_alignParentBottom="true">
        <com.google.android.material.bottomappbar.BottomAppBar
            android:id="@+id/main_bottom_bar"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_gravity="bottom"
            android:backgroundTint="@color/Laranja">

            <com.google.android.material.bottomnavigation.BottomNavigationView
                android:id="@+id/main_nav_view"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginEnd="16dp"
                android:background="@color/Transparente"
                android:outlineSpotShadowColor="@color/Transparente"
                app:itemIconTint="@color/white"
                app:itemTextColor="@color/white"
                app:menu="@menu/main_menu" />
        </com.google.android.material.bottomappbar.BottomAppBar>

        <com.google.android.material.floatingactionbutton.FloatingActionButton
            android:id="@+id/fab_fast_sync"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:backgroundTint="@color/white"
            android:src="@drawable/icones"
            app:backgroundTint="@color/Azul"
            app:borderWidth="0.7dp"
            app:layout_anchor="@id/main_bottom_bar"
            app:maxImageSize="38dp"
            app:tint="@null"
            />
    </androidx.coordinatorlayout.widget.CoordinatorLayout>
</RelativeLayout>

下面是我试图实例化 FAB 变量的 sn-p:

fab_fast_sync = findViewById(R.id.fab_fast_sync);
fab_fast_sync.setOnClickListener(this); //returns a error by null object reference

我对其他项目进行了测试,没有 FragmentContainerView,它的工作非常好,阅读 developer.android 上关于 coordinatorlayout 的文档我对我的错误一无所知。任何帮助将不胜感激。

【问题讨论】:

    标签: java android android-studio floating-action-button android-coordinatorlayout


    【解决方案1】:

    由于某些我仍然不知道的原因,问题出在用该类创建的 XML 文件中,经过几次测试,以及创建新活动和复制前一个活动的代码,问题解决了,所以我创建了一个单独的 XML 文件。以前不能使用旧接口的类的上下文,所以一切都很完美,但是我仍然对这个问题很感兴趣,因为我将 XML 代码从另一个文件复制并粘贴到新的文件中,它的工作原理是它应该。

    【讨论】:

    • 您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center
    猜你喜欢
    • 2020-12-13
    • 2017-06-14
    • 2016-06-14
    • 2016-11-28
    • 1970-01-01
    • 1970-01-01
    • 2018-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多