Back to project page AbsListViewHelper.
The source code is released under:
MIT License
If you think the Android project AbsListViewHelper listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.
package com.felipecsl.abslistviewhelper.library.widget; /*from w ww . j av a2 s. co m*/ import android.os.Bundle; import android.view.View; import android.widget.AbsListView; import com.nineoldandroids.view.ViewHelper; public class HeaderAbsListViewScrollListener implements AbsListView.OnScrollListener { private final View headerView; private int paddingTop; private float translationY; public HeaderAbsListViewScrollListener(final View headerView, Bundle savedState) { this.headerView = headerView; if (savedState != null) { paddingTop = savedState.getInt("HEADER_PADDING"); translationY = savedState.getFloat("HEADER_TRANSLATION_Y"); ViewHelper.setTranslationY(headerView, translationY); } } @Override public void onScrollStateChanged(AbsListView absListView, int i) { } @Override public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) { if (firstVisibleItem == 0) { final View firstView = view.getChildAt(0); if (firstView != null) { translationY = ViewHelper.getY(firstView) - (paddingTop / 2) - headerView.getHeight(); ViewHelper.setTranslationY(headerView, translationY); } } } public void setPaddingTop(int paddingTop) { this.paddingTop = paddingTop; } public void onSaveInstanceState(Bundle outState) { outState.putInt("HEADER_PADDING", paddingTop); outState.putFloat("HEADER_TRANSLATION_Y", translationY); } }