为什么回收站视图中的第一个元素显示不正确?

现在我写我的小游戏“牛与牛”。我在布局回收器视图的底部添加了代码,并编写了示例代码对其进行测试:

val adapter = MyAdapter(this,null)
turnStory.adapter = adapter
repeat(100) {
adapter.updateData(Triple("test$it","test$it","test$it")
}

我通过电话和saw that

开始活动

但是当我向下滚动并向后滚动everything became normal

MyAdapter.kt

class MyAdapter(private val ctx: Context,private val data: Triple<String,String,String>?) :
    RecyclerView.Adapter<MyAdapter.MyViewHolder>() {

private val dataset = mutableListOf<Triple<String,String>>()
init {
    if (data != null) dataset.add(data)
}

class MyViewHolder(val frameLayout: FrameLayout) : RecyclerView.ViewHolder(frameLayout)

override fun onCreateViewHolder(parent: ViewGroup,viewType: Int): MyViewHolder {
    val frameLayout = LayoutInflater.from(parent.context)
        .inflate(R.layout.frame_layout,parent,false) as FrameLayout

    return MyViewHolder(frameLayout)
}

override fun onBindViewHolder(holder: MyViewHolder,position: Int) {
    holder.frameLayout.numberView.text = dataset[position].first

    holder.frameLayout.bullsView.text =
        ctx.resources.getString(R.string.bulls_counter,dataset[position].second)
    holder.frameLayout.cowsView.text =
        ctx.resources.getString(R.string.cows_counter,dataset[position].third)
}

override fun getItemCount(): Int = dataset.size

fun updateData(data: Triple<String,String>) {
    dataset.add(data)
    notifyDataSetChanged()
}

}

frame_layout.xml

<FrameLayout 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="100dp">

<TextView
    android:id="@+id/numberView"
    android:layout_width="wrap_content"
    android:layout_height="match_parent"
    android:layout_gravity="center_vertical"
    android:gravity="center"
    android:maxLines="1"
    android:singleLine="false"
    android:textColor="#000000"
    android:textSize="36sp"
    android:textStyle="bold"
    app:autoSizeTextType="none" />

<TextView
    android:id="@+id/bullsView"
    android:layout_width="wrap_content"
    android:layout_height="50dp"
    android:layout_gravity="end"
    android:gravity="center"
    android:maxLines="1"
    android:singleLine="false"
    android:textColor="#000000"
    android:textSize="24sp" />

<TextView
    android:id="@+id/cowsView"
    android:layout_width="wrap_content"
    android:layout_height="50dp"
    android:layout_gravity="bottom|end"
    android:gravity="center"
    android:maxLines="1"
    android:singleLine="false"
    android:textColor="#000000"
    android:textSize="24sp" />

为什么在向下滚动之前,回收站视图中的第一个元素显示不正确?

computer_game_activity.xml

<androidx.constraintlayout.widget.ConstraintLayout 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=".GameComputeractivity">

<androidx.recyclerview.widget.RecyclerView
    android:id="@+id/turnStory"
    android:layout_width="0dp"
    android:layout_height="500dp"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintStart_toStartOf="parent" />

gjshiwoxia 回答:为什么回收站视图中的第一个元素显示不正确?

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/3154967.html

大家都在问