方法一,经测试有效:
@Override public void onBindViewHolder(final DownlaodViewHolder holder, final int position) {if(isVisible){
holder.setVisibility(true);
}else{
holder.setVisibility(false);
}}
public class DownlaodViewHolder extends RecyclerView.ViewHolder{ private TextView project_package_name,main_text_title,progress_tex; private Button file_load; private ProgressBar progress_bar; public DownlaodViewHolder(View itemView) { super(itemView); main_text_title= (TextView) itemView.findViewById(R.id.main_text_title); project_package_name= (TextView) itemView.findViewById(R.id.project_package_name); progress_tex=(TextView) itemView.findViewById(R.id.progress_tex); file_load= (Button) itemView.findViewById(R.id.file_load); progress_bar= (ProgressBar) itemView.findViewById(R.id.progress_bar); } 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); }}
方法二,未经测试: