最近遇到一个业务需求,就是读取手机里面的所有的视频文件,并且根据文件所在的文件夹进行分类.效果图如下:
打点击左侧的按钮实现展开和收起.具体的实现代码如下:
public static class ViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener{
...
public void setVisibility(boolean isVisible){
RecyclerView.LayoutParams param = (RecyclerView.LayoutParams)itemView.getLayoutParams();
if (isVisible){
param.height = LinearLayout.LayoutParams.WRAP_CONTENT;
param.width = LinearLayout.LayoutParams.MATCH_PARENT;
itemView.setVisibility(View.VISIBLE);
}else{
itemView.setVisibility(View.GONE);
param.height = 0;
param.width = 0;
}
itemView.setLayoutParams(param);
}
public ViewHolder(View itemView) {
super(itemView);
...
}
}
刚开始的实现思路是控制Item的Viesible或者gone但是显示的结果却是在每个分类的header下面依旧会显示一段空白的区域..所以就通过控制Item的params属性,来实现该效果..