lacolaco
6/15/2013 - 4:10 PM

これでやりたいこと出来ました

これでやりたいこと出来ました

package net.miz_hi.smileessence.listener;

import net.miz_hi.smileessence.util.CustomListAdapter;
import android.view.View;
import android.widget.AbsListView;
import android.widget.AbsListView.OnScrollListener;
import android.widget.ListView;

public class TimelineScrollListener implements OnScrollListener
{

  private CustomListAdapter<?> adapter;

	public TimelineScrollListener(CustomListAdapter<?> adapter)
	{
		this.adapter = adapter;
	}

	@Override
	public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount)
	{
	}

	@Override
	public void onScrollStateChanged(AbsListView view, int scrollState)
	{
		adapter.setCanNotifyOnChange(false);
		
		if (view.getFirstVisiblePosition() == 0 && view.getChildAt(0) != null && view.getChildAt(0).getTop() == 0)
		{
			if(scrollState == SCROLL_STATE_IDLE)
			{
				adapter.setCanNotifyOnChange(true);
				int before = adapter.getCount();
				adapter.notifyDataSetChanged();
				int after = adapter.getCount();
				((ListView)view).setSelectionFromTop(after - before, 0);
			}
		}
	}

}