【发布时间】:2020-03-20 19:32:17
【问题描述】:
我的recyclerview 无法正常工作,并且没有显示我为其设置的列表。你能帮我找出问题吗?下面是我创建的Fragment 和Adapter。
片段类 ->
class HomeFragment : Fragment() {
lateinit var recyclerViewHomeHome: RecyclerView
lateinit var layoutManager: RecyclerView.LayoutManager
private val restaurantsInfoList = arrayListOf<Restaurant>(
Restaurant("rohh", "4.5", "560/person", R.id.imgLogoLogin),
Restaurant("rohh", "4.5", "560/person", R.id.imgLogoLogin),
Restaurant("rohh", "4.5", "560/person", R.id.imgLogoLogin),
Restaurant("rohh", "4.5", "560/person", R.id.imgLogoLogin),
Restaurant("rohh", "4.5", "560/person", R.id.imgLogoLogin),
Restaurant("rohh", "4.5", "560/person", R.id.imgLogoLogin),
Restaurant("rohh", "4.5", "560/person", R.id.imgLogoLogin)
)
lateinit var recyclerAdapter: HomeRecyclerAdapter
override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
val view = inflater.inflate(R.layout.fragment_home, container, false)
recyclerViewHomeHome = view.findViewById(R.id.recyclerViewHomeHome)
layoutManager = LinearLayoutManager(activity)
recyclerAdapter = HomeRecyclerAdapter(activity as Context, restaurantsInfoList)
}
return view
}
适配器类 ->
class HomeRecyclerAdapter(val context: Context, val itemList: ArrayList<Restaurant>) :
RecyclerView.Adapter<HomeRecyclerAdapter.homeViewHolder>() {
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): homeViewHolder {
val view = LayoutInflater.from(parent.context)
.inflate(R.layout.recycler_view_single_row_item, parent, false)
return homeViewHolder(view)
}
override fun getItemCount(): Int {
return itemList.size
}
override fun onBindViewHolder(holder: homeViewHolder, position: Int) {
val restaurant = itemList[position]
holder.txtRestaurantNameSingle.text = restaurant.name
holder.txtPriceSingle.text = restaurant.cost_for_one
holder.imgRecyclerViewSingle.setBackgroundResource(restaurant.image_url)
holder.ratingRecyclerViewSingle.text = restaurant.rating
}
class homeViewHolder(view: View) : RecyclerView.ViewHolder(view) {
val txtRestaurantNameSingle: TextView = view.findViewById(R.id.txtRestaurantNameSingle)
val txtPriceSingle: TextView = view.findViewById(R.id.txtPriceSingle)
val ratingRecyclerViewSingle: TextView = view.findViewById(R.id.ratingRecyclerViewSingle)
val imgRecyclerViewSingle: ImageView = view.findViewById(R.id.imgRecyclerViewSingle)
}
}
【问题讨论】:
-
你是否为 RecyclerView 分配了 Adapter 和 LayoutManager?
标签: android kotlin android-recyclerview