ViewPager2 не отображается - PullRequest
1 голос
/ 31 марта 2020

Я использую ViewPager2. Итак, я последовал некоторому примеру и написал коды. Но я не понимаю, почему это не работает. Я не думаю, что этот код, который я написал, неверен. пожалуйста, дайте мне знать, почему я ничего не вижу. Я знаю, что реализация ViewPager2 похожа на адаптер RecyclerView, поэтому я следовал этому.

class UserAdapter(context: Context,userList : List<User>) : RecyclerView.Adapter<UserAdapter.UserViewHolder>() {


    val mContext = context
    val mUserList : List<User> = userList

    override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): UserViewHolder {

        var view = LayoutInflater.from(mContext).inflate(R.layout.item,parent,false)
        return UserViewHolder(view)
    }

    override fun getItemCount(): Int =0

    override fun onBindViewHolder(holder: UserViewHolder, position: Int) {
        holder.icon.setImageResource(mUserList.get(position).icon)
        holder.textname.text = mUserList.get(position).name
        holder.textage.text = mUserList.get(position).age
    }

    class UserViewHolder internal constructor(itemView: View) :
        RecyclerView.ViewHolder(itemView){
        lateinit var icon :ImageView
        lateinit var textname: TextView
        lateinit var textage: TextView

        init{
            icon = itemView.findViewById(R.id.icon)
            textname = itemView.findViewById(R.id.textView)
            textage = itemView.findViewById(R.id.textView2)
        }

    }
}
class MainActivity : AppCompatActivity() {

    private lateinit var userList: ArrayList<User>
    private lateinit var binding: ActivityMainBinding
    private lateinit var userAdapter:UserAdapter

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        binding = ActivityMainBinding.inflate(getLayoutInflater());
        setContentView(binding.root);
        userList = arrayListOf()
        userList.add(User(R.drawable.child,"child","21"))
        userList.add(User(R.drawable.sun,"sun","22"))
        userList.add(User(R.drawable.moon,"moon","23"))

        userAdapter = UserAdapter(this,userList)
        binding.viewpager2.adapter = userAdapter
    }

}

1 Ответ

2 голосов
/ 31 марта 2020

Изменить или заменить override fun getItemCount(): Int =0

override fun getItemCount(): Int = mUserList.size()
...