CERCA
PER MODELLO
FullScreen Chatbox! :)

Utente del giorno: ryouza con ben 1 Thanks ricevuti nelle ultime 24 ore
Utente della settimana: carotix con ben 11 Thanks ricevuti negli ultimi sette giorni
Utente del mese: megthebest con ben 26 Thanks ricevuti nell'ultimo mese

Visualizzazione dei risultati da 1 a 1 su 1
Discussione:

[SNIPPET] Direzione di Scrolling di una ListView - [Scroll up|down|bottom|top]

Se questa discussione ti è stata utile, ti preghiamo di lasciare un messaggio di feedback in modo che possa essere preziosa in futuro anche per altri utenti come te!
  1. #1
    Androidiani Power User L'avatar di cesco


    Registrato dal
    Sep 2010
    Località
    Bg
    Messaggi
    5,018
    Smartphone
    TYTN2,desire,desireHD, oneX

    Ringraziamenti
    54
    Ringraziato 1,346 volte in 724 Posts
    Predefinito

    [SNIPPET] Direzione di Scrolling di una ListView - [Scroll up|down|bottom|top]

    ciao a tutti

    Eccovi un altro snippet di codice contenente una ListView e un listener custom la direzione di scroll della listView che ho dovuto implementare per necessità

    Buon coding

    list.setOnDetectScrollListener(new OnDetectScrollListener() {
    @Override
    public void onUpScrolling() {
    // TODO Auto-generated method stub
    mBottom.setVisibility(View.VISIBLE);
    }
    @Override
    public void onDownScrolling() {
    // TODO Auto-generated method stub
    mBottom.setVisibility(View.GONE);
    }
    @Override
    public void onBottomScrolled() {
    // TODO Auto-generated method stub
    mBottom.setVisibility(View.VISIBLE);
    }
    @Override
    public void onTopScrolled() {
    // TODO Auto-generated method stub
    mBottom.setVisibility(View.VISIBLE);
    }
    });
    public interface OnDetectScrollListener {
    void onUpScrolling();
    void onDownScrolling();
    void onBottomScrolled();
    void onTopScrolled();
    }
    import android.content.Context;
    import android.util.AttributeSet;
    import android.view.View;
    import android.widget.AbsListView;
    public class ScrollDetectableListView extends android.widget.ListView {
    private OnScrollListener onScrollListener;
    private OnDetectScrollListener onDetectScrollListener;
    public ScrollDetectableListView(Context context) {
    super(context);
    onCreate(context, null, null);
    }
    public ScrollDetectableListView(Context context, AttributeSet attrs) {
    super(context, attrs);
    onCreate(context, attrs, null);
    }
    public ScrollDetectableListView(Context context, AttributeSet attrs, int defStyle) {
    super(context, attrs, defStyle);
    onCreate(context, attrs, defStyle);
    }
    @SuppressWarnings("UnusedParameters")
    private void onCreate(Context context, AttributeSet attrs, Integer defStyle) {
    setListeners();
    }
    private void setListeners() {
    super.setOnScrollListener(new OnScrollListener() {
    private int oldTop;
    private int oldFirstVisibleItem;
    @Override
    public void onScrollStateChanged(AbsListView view, int scrollState) {
    if (onScrollListener != null) {
    onScrollListener.onScrollStateChanged(view, scrollState);
    }
    }
    @Override
    public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {
    if (onScrollListener != null) {
    onScrollListener.onScroll(view, firstVisibleItem, visibleItemCount, totalItemCount);
    }
    if (onDetectScrollListener != null) {
    onDetectedListScroll(view, firstVisibleItem, totalItemCount, visibleItemCount);
    }
    }
    private void onDetectedListScroll(AbsListView absListView, int firstVisibleItem, int totalItemCount, int visibleItemCount) {
    View view = absListView.getChildAt(0);
    int top = (view == null) ? 0 : view.getTop();
    int lastItem = firstVisibleItem + visibleItemCount;
    if (firstVisibleItem == oldFirstVisibleItem) {
    if (top > oldTop) {
    onDetectScrollListener.onUpScrolling();
    } else if (top < oldTop) {
    onDetectScrollListener.onDownScrolling();
    }
    } else {
    if (firstVisibleItem < oldFirstVisibleItem) {
    onDetectScrollListener.onUpScrolling();
    } else {
    onDetectScrollListener.onDownScrolling();
    }
    }
    if(lastItem == totalItemCount) {
    if(oldFirstVisibleItem <= lastItem){
    onDetectScrollListener.onBottomScrolled();
    }else {
    onDetectScrollListener.onUpScrolling();
    }
    }
    oldTop = top;
    oldFirstVisibleItem = firstVisibleItem;
    }
    });
    }
    @Override
    public void setOnScrollListener(OnScrollListener onScrollListener) {
    this.onScrollListener = onScrollListener;
    }
    public void setOnDetectScrollListener(OnDetectScrollListener onDetectScrollListener) {
    this.onDetectScrollListener = onDetectScrollListener;
    }
    }
    Follow me on:
    <!-- Place this tag where you want the widget to render. -->
    <div class="g-person" data-width="180" data-href="//plus.google.com/113012341277613226011" data-theme="dark" data-rel="author"></div>

    <!-- Place this tag after the last widget tag. -->
    <script type="text/javascript">
    window.___gcfg = {lang: 'it'};

    (function() {
    var po = document.createElement('script'); po.type = 'text/javascript'; po.async = true;
    po.src = 'https://apis.google.com/js/plusone.js';
    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(po, s);
    })();
    </script>
    <br>
    <a class="twitter-timeline" href="https://twitter.com/xcesco89" data-widget-id="398762031488040960">Tweets di @xcesco89</a>
    <script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementB yId(id)){js=d.createElement(s);js.id=id;js.src=p+" ://platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}} (document,"script","twitter-wjs");</script>
    Androidiani app
    Estensione Androidiani per Google Chrome

  2. Il seguente Utente ha ringraziato cesco per il post:

    NiloGlock (24-05-14)

  3.  

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire risposte
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Torna su
Privacy Policy