Firebase查询中导航抽屉标题图片未设置

3

Navigator抽屉头部图片没有在我的Firebase查询中设置。它没有给出错误,但它不显示加载的图片。

Kotlin;

val navigationView = findViewById(R.id.nav_view) as NavigationView
        val headerview = navigationView.getHeaderView(0)
        var imageViewUser = headerview.imgUserProfilNav as ImageView
        mUserAuthListener = object : FirebaseAuth.AuthStateListener {
            override fun onAuthStateChanged(p0: FirebaseAuth) {
                var kullanici = p0.currentUser
               //  Glide.with(this@ProfilNavMenu).load(R.drawable.ic_action_user).into(imageViewUser)
                headerview.imgUserProfilNav.setImageResource(R.drawable.ic_action_user)
                if (kullanici != null) {
                   // Picasso.with(this@ProfilNavMenu).load(R.drawable.ic_action_user).fit().centerCrop().into(headerview.imgUserProfilNav)

                }
            }
        }

ProfileNavMenu - nav_header_profil_nav_menu.xml ;

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="@dimen/nav_header_height"
    android:background="@drawable/side_nav_bar"
    android:gravity="bottom"
    android:orientation="vertical"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:theme="@style/ThemeOverlay.AppCompat.Dark">

    <ImageView
        android:id="@+id/imgUserProfilNav"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:contentDescription="@string/nav_header_desc"
        android:paddingTop="@dimen/nav_header_vertical_spacing"
        app:srcCompat="@mipmap/ic_launcher_round" />

    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:paddingTop="@dimen/nav_header_vertical_spacing"
        android:text="@string/nav_header_title"
        android:textAppearance="@style/TextAppearance.AppCompat.Body1" />

    <TextView
        android:id="@+id/textView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/nav_header_subtitle" />

</LinearLayout>

我该如何使用Kotlin和Firebase设置图片?我甚至尝试了Glide,但仍然无法显示任何url或drawable图片。


请附上您的 XML 文件。 - Nouman Ch
1个回答

1

而不是这个:

mUserAuthListener = object : FirebaseAuth.AuthStateListener {
            override fun onAuthStateChanged(p0: FirebaseAuth) {
                var kullanici = p0.currentUser
               //  Glide.with(this@ProfilNavMenu).load(R.drawable.ic_action_user).into(imageViewUser)
                headerview.imgUserProfilNav.setImageResource(R.drawable.ic_action_user)
                if (kullanici != null) {
                   // Picasso.with(this@ProfilNavMenu).load(R.drawable.ic_action_user).fit().centerCrop().into(headerview.imgUserProfilNav)

                }
            }
        }

试试这个:

 mUserAuthListener = object : FirebaseAuth.AuthStateListener {
            override fun onAuthStateChanged(p0: FirebaseAuth) {

           Toast.makeText(getContext(), "Set Image here", Toast.LENGTH_SHORT).show();
                }
            }
        }

这将帮助您确定您的 onAuthStateChanged 是否每次运行。如果它没有每次运行,您将不得不采用不同的方法。
最终运行的代码将是:
val navigationView = findViewById(R.id.nav_view) as NavigationView
        val headerview = navigationView.getHeaderView(0)
        var imageViewUser = headerview.imgUserProfilNav as ImageView
              headerview.imgUserProfilNav.setImageResource(R.drawable.ic_action_user)
        mUserAuthListener = object : FirebaseAuth.AuthStateListener {
            override fun onAuthStateChanged(p0: FirebaseAuth) {
                var kullanici = p0.currentUser

                if (kullanici != null) {
                    //set image if there is any specific requirement
                }
            }
        }

你的意思是你没有得到任何提示吗? - Nouman Ch
这意味着您的图像也不应设置。请将headerview.imgUserProfilNav.setImageResource(R.drawable.ic_action_user)此行移出onAuthStateChanged。 - Nouman Ch
是的,你说得对,Toast 消息没有显示任何内容。我怎样可以获取到 Activity? - Umut Bulut
1
只有在 onAuthStateChange() 调用时,Toast 才会显示出来,否则它不会运行此方法中的任何代码。 - Nouman Ch
1
是的,兄弟,你说得对。这是我的错误,我放错了查询语句。非常感谢你,你节省了我的时间 :) - Umut Bulut

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接