@Override
public void onToggle(boolean isExpand, RecyclerView.ViewHolder holder) {
//int position=holder.getAdapterPosition();
DirectoryNodeBinder.ViewHolder dirViewHolder = (DirectoryNodeBinder.ViewHolder) holder;
final ImageView ivArrow = dirViewHolder.getIvArrow();
int rotateDegree = isExpand ? 90 : -90;
ivArrow.animate().rotationBy(rotateDegree)
.start();
}
这句话为什么会报强制类型装换错误。下面是这个 DirectoryNodeBinder.ViewHolder类的写法。有大神给小弟解解疑惑吗????
public class DirectoryNodeBinder extends TreeViewBinder<DirectoryNodeBinder.ViewHolder> {
@Override
public ViewHolder provideViewHolder(View itemView) {
return new ViewHolder(itemView);
}
@Override
public void bindView(ViewHolder holder, int position, TreeNode node) {
holder.ivArrow.setRotation(0);
holder.ivArrow.setImageResource(R.drawable.ic_keyboard_arrow_right_black_18dp);
int rotateDegree = node.isExpand() ? 90 : 0;
holder.ivArrow.setRotation(rotateDegree);
Dir dirNode = (Dir) node.getContent();
holder.tvName.setText(dirNode.dirName);
if (node.isLeaf())
holder.ivArrow.setVisibility(View.INVISIBLE);
else holder.ivArrow.setVisibility(View.VISIBLE);
}
@Override
public int getLayoutId() {
return R.layout.item_dir;
}
public static class ViewHolder extends TreeViewBinder.ViewHolder {
private ImageView ivArrow;
private TextView tvName;
public ViewHolder(View rootView) {
super(rootView);
this.ivArrow = (ImageView) rootView.findViewById(R.id.iv_arrow);
this.tvName = (TextView) rootView.findViewById(R.id.tv_name);
}
public ImageView getIvArrow() {
return ivArrow;
}
public TextView getTvName() {
return tvName;
}
}