由于项目引用cardlibs 卡片式的 主页。
解决Cardlibs卡片式listview,item滑动每次item全部重新载入,导致速度卡顿
其实就是让他的布局只缓存一次而已。
修改如下CardArrayAdapter.java
@Override
public View getView(int position, View convertView, ViewGroup parent) {
LayoutInflater mInflater = (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
// View view =convertView;
// CardView mCardView;
ViewHolder viewHolder;
if(convertView==null){
int layout = mRowLayoutId;
viewHolder=new ViewHolder();
convertView = mInflater.inflate(layout, parent, false);
viewHolder.mCard = (Card) getItem(position);
//Setup card
viewHolder.mCardView = (CardView) convertView.findViewById(R.id.list_cardId);
convertView.setTag(viewHolder);
if (viewHolder.mCard != null) {
if (viewHolder.mCardView != null) {
//It is important to set recycle value for inner layout elements
viewHolder.mCardView.setForceReplaceInnerLayout(Card.equalsInnerLayout(viewHolder.mCardView.getCard(),viewHolder.mCard));
//It is important to set recycle value for performance issue
viewHolder.mCardView.setRecycle(false);
//Save original swipeable to prevent cardSwipeListener (listView requires another cardSwipeListener)
boolean origianlSwipeable = viewHolder.mCard.isSwipeable();
viewHolder.mCard.setSwipeable(false);
viewHolder.mCardView.setCard(viewHolder.mCard);
//Set originalValue
viewHolder.mCard.setSwipeable(origianlSwipeable);
//If card has an expandable button override animation
if ((viewHolder.mCard.getCardHeader() != null && viewHolder.mCard.getCardHeader().isButtonExpandVisible()) || viewHolder.mCard.getViewToClickToExpand()!=null ){
setupExpandCollapseListAnimation(viewHolder.mCardView);
}
//Setup swipeable animation
setupSwipeableAnimation(viewHolder.mCard, viewHolder.mCardView);
//setupMultiChoice
setupMultichoice(convertView,viewHolder.mCard,viewHolder.mCardView,position);
}
}
}else{
viewHolder= (ViewHolder) convertView.getTag();
}
//Retrieve card from items
return convertView;
}
static class ViewHolder{
CardView mCardView;
Card mCard;
}