Android Open Source - AbsListViewHelper Header Abs List View Scroll Listener






From Project

Back to project page AbsListViewHelper.

License

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.

Java Source Code

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);
    }
}




Java Source Code List

com.felipecsl.abslistviewhelper.app.MainActivity.java
com.felipecsl.abslistviewhelper.library.AbsListViewHelper.java
com.felipecsl.abslistviewhelper.library.CompositeAbsListViewOnScrollListener.java
com.felipecsl.abslistviewhelper.library.widget.FooterAbsListViewScrollListener.java
com.felipecsl.abslistviewhelper.library.widget.HeaderAbsListViewScrollListener.java