set animation on listview scrolling in android

后端 未结 5 1457
温柔的废话
温柔的废话 2021-01-01 08:20

I want to set an animation for a ListView for when a user scrolls the ListView. I am setting an animation for ListView when loading, b

5条回答
  •  梦谈多话
    2021-01-01 08:54

    This is the best possible solution that i can give to you as per your requirement! Please go through this Adapter once.

     public class MyAdapter extends ArrayAdapter{
    
                private int mLastPosition;
    
                public MyAdapter(Context context, ArrayList objects) {
                    super(context, 0, objects);
                }
    
                private class ViewHolder{
                    public TextView mTextView;
                }
    
                @TargetApi(Build.VERSION_CODES.HONEYCOMB_MR1)
                @Override
                public View getView(int position, View convertView, ViewGroup parent) {
    
                    ViewHolder holder;
    
                    if (convertView == null) {
                        holder = new ViewHolder();
                        convertView = LayoutInflater.from(getContext()).inflate(R.layout.grid_item, parent, false);
                        holder.mTextView = (TextView) convertView.findViewById(R.id.checkbox);
                        convertView.setTag(holder);
                    } else {
                        holder = (ViewHolder) convertView.getTag();
                    }
    
                    holder.mTextView.setText(getItem(position));
    
                    // This tells the view where to start based on the direction of the scroll.
                    // If the last position to be loaded is <= the current position, we want
                    // the views to start below their ending point (500f further down).
                    // Otherwise, we start above the ending point.
                    float initialTranslation = (mLastPosition <= position ? 500f : -500f);
    
                    convertView.setTranslationY(initialTranslation);
                    convertView.animate()
                            .setInterpolator(new DecelerateInterpolator(1.0f))
                            .translationY(0f)
                            .setDuration(300l)
                            .setListener(null);
    
                    // Keep track of the last position we loaded
                    mLastPosition = position;
    
                    return convertView;
                }
    
    
            }
    

提交回复
热议问题