程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了KOTLIN / FIREBASE:图像在 RecyclerView 中消失大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决KOTLIN / FIREBASE:图像在 RecyclerView 中消失?

开发过程中遇到KOTLIN / FIREBASE:图像在 RecyclerView 中消失的问题如何解决?下面主要结合日常开发的经验,给出你关于KOTLIN / FIREBASE:图像在 RecyclerView 中消失的解决方法建议,希望对你解决KOTLIN / FIREBASE:图像在 RecyclerView 中消失有所启发或帮助;

我在我的应用中使用 Kotlin。 我有一个无法解决的问题。@H_197_3@

我在片段中使用了 RecyclerVIEw,该片段显示了每行 2 个项目的网格。 每个项目内都有从 Firebase 加载的文本和图像。@H_197_3@

一切正常。但是,我不知道为什么图像会随机消失并返回一个白色元素。文字不变,只是图片变了。@H_197_3@

有两个屏幕,只有几秒钟的时间。在第一个中一切正常,它显示了 4 个元素。然后我重新启动应用程序,4 个图像中的 3 个消失(第二个屏幕)。只有最后一次进出 Firebase 的加载会保留。@H_197_3@

在代码内部,我使用了一个名为 DataClassArticle 的数据类、一个名为 ArticleAdapter 的适配器和一个名为 Flux 的片段。@H_197_3@


1 - 第一个屏幕@H_197_3@

2 - 第二场@H_197_3@

3 - Firebase@H_197_3@

4 - 数据类@H_197_3@

5 - 适配器@H_197_3@

6 - 片段@H_197_3@


1 - 第一个屏幕(一切正常):

KOTLIN / FIREBASE:图像在 RecyclerView 中消失@H_197_3@@H_197_3@@H_197_3@


2- 第二个屏幕(4 个图像中的 3 个消失):

KOTLIN / FIREBASE:图像在 RecyclerView 中消失@H_197_3@@H_197_3@@H_197_3@


3 - FIREBASE(返回:描述、PRIXVENTE、TITREVENTE、区域、照片)

KOTLIN / FIREBASE:图像在 RecyclerView 中消失@H_197_3@@H_197_3@@H_197_3@


4- 数据类@H_197_3@

data class DataClassArticle(
    var titrevente: String? = null,var prixvente: String? = null,var zone: String? = null,var photo: String? = null
    )

5- 适配器@H_197_3@

import androID.util.Log
import androID.vIEw.LayoutInflater
import androID.vIEw.VIEw
import androID.vIEw.VIEwGroup
import androID.Widget.ImageVIEw
import androID.Widget.TextVIEw
import androIDx.recyclervIEw.Widget.RecyclerVIEw
import com.example.givenaskv1.R
import com.Google.firebase.auth.FirebaseAuth
import com.Google.firebase.database.DataSnapshot
import com.Google.firebase.database.DatabaseError
import com.Google.firebase.database.FirebaseDatabase
import com.Google.firebase.database.ValueEventListener
import com.squareup.piCasso.PiCasso

class ArticleAdapter(private var articleList: ArrayList<DataClassArticle>) : RecyclerVIEw.Adapter<ArticleAdapter.VIEwHolder>() {
    val TAG = "TAG"
    var dataList = emptyList<DataClassArticle>()
    internal fun setDataList(dataList : List<DataClassArticle>) {
        this.dataList = dataList
        notifyDataSetChanged()
    }

    inner class VIEwHolder(itemVIEw: VIEw) : RecyclerVIEw.VIEwHolder(itemVIEw) {

        var articleImage : ImageVIEw
        var articletitle : TextVIEw
        var articlePrice : TextVIEw
        var articleLocalisation : TextVIEw

        init {
            articleImage = itemVIEw.findVIEwByID(R.ID.articleImagE)
            articletitle = itemVIEw.findVIEwByID(R.ID.titreArticlE)
            articlePrice = itemVIEw.findVIEwByID(R.ID.prixArticlE)
            articleLocalisation = itemVIEw.findVIEwByID(R.ID.nomVilleArticlE)
            
            val myID = FirebaseAuth.geTinstance().uID
            com.example.givenaskv1.Map.dbref = FirebaseDatabase.geTinstance().getReference("Vente")
            com.example.givenaskv1.Map.dbref.addValueEventListener(object : ValueEventListener {
                overrIDe fun onDataChange(snapshot: DataSnapshot) {
                    if (snapshot.exists()) {
                        for (missionSnapshot in snapshot.children) {
                            //    if (missionSnapshot.child("uID").value.toString() == myID) {
                            val test = missionSnapshot.child("uID").value.toString()
                            Log.d(tag,"Ceci est l'UID : ${test}.")
                            //   }
                        }
                    }
                }
                overrIDe fun onCancelled(error: DatabaseError) {
                    Todo("Not yet implemented")
                }
            })
        }
    }

    overrIDe fun onCreateVIEwHolder(parent: VIEwGroup,vIEwType: int): VIEwHolder {
        val v = LayoutInflater.from(parent.context)
            .inflate(R.layout.post_vente,parent,falsE)
        return VIEwHolder(v)
    }

    overrIDe fun onBindVIEwHolder(holder: ArticleAdapter.VIEwHolder,position: int) {
        val data = articleList[position]

        holder.articletitle.text = data.titrevente
        holder.articlePrice.text = data.prixvente
        holder.articleLocalisation.text = data.zone
        PiCasso.get().load(data.photo).into(holder.articleImagE)
    }
    overrIDe fun getItemCount() : Int {
       return articleList.size
    }
}

6- 片段@H_197_3@

import androID.os.bundle
import androID.vIEw.LayoutInflater
import androID.vIEw.VIEw
import androID.vIEw.VIEwGroup
import androIDx.fragment.app.Fragment
import androIDx.recyclervIEw.Widget.GrIDLayoutManager
import androIDx.recyclervIEw.Widget.linearlayoutmanager
import androIDx.recyclervIEw.Widget.RecyclerVIEw
import com.bumptech.glIDe.GenericTransitionOptions.with
import com.bumptech.glIDe.GlIDe.with
import com.bumptech.glIDe.load.resource.bitmap.bitmapTransitionOptions.with
import com.bumptech.glIDe.load.resource.drawable.DrawableTransitionOptions.with
import com.example.givenaskv1.R
import com.Google.firebase.database.*
import com.squareup.piCasso.PiCasso
import kotlinx.androID.synthetic.main.fragment_flux.*
import kotlinx.androID.synthetic.main.fragment_notification.*
import kotlinx.androID.synthetic.main.post_vente.*

private const val TAG = "TAG"
class Flux : Fragment() {

    private var layoutManager: RecyclerVIEw.LayoutManager? = null
    private var adapter: RecyclerVIEw.Adapter<ArticleAdapter.VIEwHolder>? = null
    private lateinit var dbref : DatabaseReference
    private lateinit var userRecyclervIEw : RecyclerVIEw
    private lateinit var userArrayList : ArrayList<DataClassArticle>
    private lateinit var articleAdapter: ArticleAdapter


    overrIDe fun onCreateVIEw(
        inflater: LayoutInflater,container: VIEwGroup?,savedInstanceState: Bundle?

    ): VIEw? {
        // Inflate the layout for this fragment
        return inflater.inflate(R.layout.fragment_flux,container,falsE)
    }

    overrIDe fun onVIEwCreated(itemVIEw: VIEw,savedInstanceState: Bundle?) {
        super.onVIEwCreated(itemVIEw,savedInstanceStatE)
        // Rvposts = le recyclervIEw
        btnPublIErVente.setonClickListener {
            val bottomSheet = BottomsheetVentes()
            bottomSheet.show(fragmentManager!!,"BottomSheet")
        }

        rvposts.apply {
            userRecyclervIEw = findVIEwByID(R.ID.rvposts)
            userRecyclervIEw.setHasFixedSize(true)
            userArrayList = arraylistof<DataClassArticle>()
            layoutManager = linearlayoutmanager(activity)
            rvposts.setLayoutManager(GrIDLayoutManager(this.context,2))
            getUserData()
        }
    }
    
    private fun getUserData() {
        
        dbref = FirebaseDatabase.geTinstance().getReference("Vente")
        dbref.addValueEventListener(object : ValueEventListener {
            overrIDe fun onDataChange(snapshot: DataSnapshot) {
                    for (usersnapshot in snapshot.children){
                        val user = usersnapshot.getValue(DataClassArticle::class.java)

                        userArrayList.add(user!!)
                        userRecyclervIEw.adapter = ArticleAdapter(userArrayList)
                    }
            }
            overrIDe fun onCancelled(error: DatabaseError) {
                Todo("Not yet implemented")
            }
        })
    }
}

谢谢大家的帮助。 祝你有美好的一天!@H_197_3@

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!@H_197_3@

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。@H_197_3@

小编邮箱:dio#foxmail.com (将#修改为@)@H_197_3@

大佬总结

以上是大佬教程为你收集整理的KOTLIN / FIREBASE:图像在 RecyclerView 中消失全部内容,希望文章能够帮你解决KOTLIN / FIREBASE:图像在 RecyclerView 中消失所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。