安卓给RecyclerView加入展开收起
时间: 2023-11-16 17:53:45 浏览: 33
可以通过在RecyclerView的Adapter中添加一个boolean类型的变量来控制item的展开和收起,然后在item的点击事件中改变该变量的值,再调用notifyItemChanged方法刷新item的状态即可。
具体实现步骤如下:
1. 在RecyclerView的Adapter中添加一个boolean类型的变量,用于记录item的展开状态。
2. 在onBindViewHolder方法中根据该变量的值来设置item的显示状态。
3. 在item的点击事件中改变该变量的值,并调用notifyItemChanged方法刷新item的状态。
示例代码如下:
```
public class MyAdapter extends RecyclerView.Adapter<MyAdapter.ViewHolder> {
private List<String> mData;
private boolean[] mExpandState;
public MyAdapter(List<String> data) {
mData = data;
mExpandState = new boolean[data.size()];
}
@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_layout, parent, false);
return new ViewHolder(view);
}
@Override
public void onBindViewHolder(ViewHolder holder, int position) {
holder.mTextView.setText(mData.get(position));
if (mExpandState[position]) {
holder.mExpandView.setVisibility(View.VISIBLE);
} else {
holder.mExpandView.setVisibility(View.GONE);
}
}
@Override
public int getItemCount() {
return mData.size();
}
class ViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener {
TextView mTextView;
View mExpandView;
ViewHolder(View itemView) {
super(itemView);
mTextView = itemView.findViewById(R.id.text_view);
mExpandView = itemView.findViewById(R.id.expand_view);
itemView.setOnClickListener(this);
}
@Override
public void onClick(View v) {
int position = getAdapterPosition();
mExpandState[position] = !mExpandState[position];
notifyItemChanged(position);
}
}
}
```
相关推荐
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)