dependencies { implementation 'me.drakeet.multitype:multitype:VERSION' } public class User { private String name; } public class Post { private String content; } public class UserItemViewBinder extends ItemViewBinder<User, UserItemViewBinder.ViewHolder> { @NonNull @Override protected ViewHolder onCreateViewHolder(@NonNull LayoutInflater inflater, @NonNull ViewGroup parent) { View view = inflater.inflate(R.layout.item_user, parent, false); return new ViewHolder(view); } @Override protected void onBindViewHolder(@NonNull ViewHolder holder, @NonNull User user) { holder.nameTextView.setText(user.getName()); } static class ViewHolder extends RecyclerView.ViewHolder { TextView nameTextView; ViewHolder(@NonNull View itemView) { super(itemView); nameTextView = itemView.findViewById(R.id.text_name); } } } MultiTypeAdapter adapter = new MultiTypeAdapter(); adapter.register(User.class, new UserItemViewBinder()); List<Object> items = new ArrayList<>(); items.add(new User("John")); items.add(new User("Jane")); items.add(new Post("Hello, world!")); adapter.setItems(items); RecyclerView recyclerView = findViewById(R.id.recycler_view); recyclerView.setLayoutManager(new LinearLayoutManager(this)); recyclerView.setAdapter(adapter);


上一篇:
下一篇:
切换中文