<dependency>
<groupId>me.drakeet.multitype</groupId>
<artifactId>multitype</artifactId>
<version>4.3.0</version>
</dependency>
public class User {
private String name;
}
public class Message {
private String content;
}
public class UserAdapter extends ItemViewBinder<User, UserAdapter.ViewHolder> {
@NonNull
@Override
protected ViewHolder onCreateViewHolder(@NonNull LayoutInflater inflater, @NonNull ViewGroup parent) {
}
@Override
protected void onBindViewHolder(@NonNull ViewHolder holder, @NonNull User user) {
}
static class ViewHolder extends RecyclerView.ViewHolder {
// ...
}
}
public class MessageAdapter extends ItemViewBinder<Message, MessageAdapter.ViewHolder> {
@NonNull
@Override
protected ViewHolder onCreateViewHolder(@NonNull LayoutInflater inflater, @NonNull ViewGroup parent) {
}
@Override
protected void onBindViewHolder(@NonNull ViewHolder holder, @NonNull Message message) {
}
static class ViewHolder extends RecyclerView.ViewHolder {
// ...
}
}
MultiTypeAdapter adapter = new MultiTypeAdapter();
adapter.register(User.class, new UserAdapter());
adapter.register(Message.class, new MessageAdapter());
RecyclerView recyclerView = findViewById(R.id.recyclerView);
recyclerView.setAdapter(adapter);