[Android] ListView 無限循環

有用過ListView 就知道,預設的方法是無法從第一項在往上滾回最後一項

利用無限循環效果的話,很像在設定鬧鐘時間, 00分往上滾是01分,往下滾59分



很有趣的,這個方法不是對ListView下手,而是對Adapter著手


public class CircularArrayAdapter extends ArrayAdapter
{   

        public static final int HALF_MAX_VALUE = Integer.MAX_VALUE/2;
        public final int MIDDLE;
        private T[] objects;

        public CircularArrayAdapter(Context context, int textViewResourceId, T[] objects)
        {
            super(context, textViewResourceId, objects);
            this.objects = objects;
            MIDDLE = HALF_MAX_VALUE - HALF_MAX_VALUE % objects.length;
        }

        @Override
        public int getCount()
        {
        //關鍵在這邊!!! 主要增加這個就可以讓整個ListView變超大
            return Integer.MAX_VALUE;
        }

        @Override
        public T getItem(int position) 
        {
            return objects[position % objects.length];
        }
 }

提醒

本站內容即日起將轉到另一站上轉跳~