【发布时间】:2022-01-07 12:27:32
【问题描述】:
最近我学习了用户 github api 但我很好奇,我怎样才能在回收站视图中进行无休止的滚动
这里是我的 mainActivity.kt
class MainActivity : AppCompatActivity()
{
private lateinit var binding: ActivityMainBinding
private lateinit var viewModel :MainViewModel
private lateinit var adapter: userAdapter
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
binding = ActivityMainBinding.inflate(layoutInflater)
setContentView(binding.root)
adapter = userAdapter()
adapter.notifyDataSetChanged()
viewModel = ViewModelProvider(this,ViewModelProvider.NewInstanceFactory()).get(MainViewModel::class.java)
binding.apply {
recyclerview.layoutManager = LinearLayoutManager(this@MainActivity)
recyclerview.setHasFixedSize(false)
recyclerview.adapter = adapter
btnSearch.setOnClickListener {
searchUsers()
}
etQuery.setOnKeyListener { v, keyCode, event ->
if (event.action == KeyEvent.ACTION_DOWN && keyCode == KeyEvent.KEYCODE_ENTER){
searchUsers()
return@setOnKeyListener true
}
return@setOnKeyListener false
}
}
}
private fun searchUsers(){
binding.apply {
val query = etQuery.text.toString()
if(query.isEmpty()) return
viewModel.setSearchUsers(query)
}
viewModel.getSearchUsers().observe(this,{
if (it!=null){
adapter.setList(it)
}
})
}
}
适配器.kt
这是我的适配器,我已经尝试更改类似功能仍然不起作用
// 类 userAdapter : RecyclerView.Adapter
fun setList(user: ArrayList<user>){
list.clear()
list.addAll(user)
notifyDataSetChanged()
}
inner class UserViewHolder(val binding: UserItemListBinding) : RecyclerView.ViewHolder(binding.root){
fun bind(user: user){
binding.apply {
Glide.with(itemView)
.load(user.avatar_url)
.transition(DrawableTransitionOptions.withCrossFade())
.centerCrop()
.into(userpropic)
username.text = user.login
}
}
}
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): UserViewHolder {
val view = UserItemListBinding.inflate(LayoutInflater.from(parent.context),parent,false)
return UserViewHolder((view))
}
override fun onBindViewHolder(holder: UserViewHolder, position: Int) {
holder.bind(list[position])
}
override fun getItemCount(): Int = list.size
}
适配器.kt
这是我的适配器,我已经尝试更改类似功能仍然不起作用
【问题讨论】:
-
我试过了,但我没有工作,因为我是 kotlin 的新手,也许你可以帮助我先生,
标签: android kotlin android-recyclerview