java - 如何在单击列表中父级的特定项目时扩展子级?

标签 java android android-layout

enter image description here

我只想在单击图像中显示的特定 TextView /按钮时展开/折叠 subview 。

最佳答案

您可以使用 ExpandableRecyclerView

通过在类的定义中包含您的 GroupViewHolder 和 ChildViewHolder,您将看到 onCreateGroupViewHolder 和 onCreateChildViewHolder 方法返回正确的类型:+1:

public class GenreAdapter extends ExpandableRecyclerViewAdapter<GenreViewHolder, ArtistViewHolder> {

  public GenreAdapter(List<? extends ExpandableGroup> groups) {
    super(groups);
  }

  @Override
  public GenreViewHolder onCreateGroupViewHolder(ViewGroup parent, int viewType) {
    View view = inflater.inflate(R.layout.list_item_genre, parent, false);
    return new GenreViewHolder(view);
  }

  @Override
  public ArtistViewHolder onCreateChildViewHolder(ViewGroup parent, int viewType) {
    View view = inflater.inflate(R.layout.list_item_artist, parent, false);
    return new ArtistViewHolder(view);
  }

  @Override
  public void onBindChildViewHolder(ArtistViewHolder holder, int flatPosition, ExpandableGroup group,
      int childIndex) {
    final Artist artist = ((Artist) group).getItems().get(childIndex);
    holder.setArtistName(artist.getName());
  }

  @Override
  public void onBindGroupViewHolder(GenreViewHolder holder, int flatPosition,
      ExpandableGroup group) {
    holder.setGenreTitle(group);
  }
}

请查看以下 GitHub 存储库以获取有关如何实现的完整指南,

ExpandableRecyclerView

你得到的结果如下图所示,

enter image description here

关于java - 如何在单击列表中父级的特定项目时扩展子级?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47987687/

相关文章:

java - 是否可以为android应用程序设置修复进程ID?

android - 约束布局 : Textview text overlap button

java - 为什么线程不同时运行?

java - 如何用Java中的特定字符串替换数组中的所有倍数

java - 如果加载超过 2 GB 的数据,Java 8 会出现 EXCEPTION_ACCESS_VIOLATION

java - 如何扩展 ReflectionToStringBuilder 以避免重复?

java - android.support.v7.widget.GridLayout 实例化失败

android - 如何使用循环在 TextView 中逐行打印?

android - 可扩展的 ListView 组标题颜色更改

android - VideoView 不填充布局