Android: ListView.getScrollY () – isso funciona?

Estou usando isso, mas sempre retorna 0, mesmo que eu tenha rolado até o final da list.

  • Como inserir em massa no sqlite no Android
  • usando oAuth2 obsoleto?
  • Como desenvolview a interface do user que pairecerá nativa do Android usando jQuery-mobile?
  • Projeto de material paira a subclass do EditText
  • Detecção de toque de polígono Google Map API V2
  • Android NSD não está descobrindo todos os services
  • INSTALL_PARSE_FAILED_INCONSISTENT_CERTIFICATES na installation do AdB
  • Desativair ViewRootImpl no Android Log?
  • Loop através de todas as sub-visualizações de uma visão do Android?
  • Como adicionair dica no EditText com inputType = "numberDecimal"?
  • como reproduzir files de audio no Android
  • Por que o TextView em uma única linha foi ativado com checkboxs de exibição "finais"?
  • 2 Solutions collect form web for “Android: ListView.getScrollY () – isso funciona?”

    getScrollY () é realmente um método no View, not ListView. Ele está se referindo à quantidade de rolagem de toda a exibição, então quase sempre será 0.

    Se você quiser saber até que ponto o conteúdo do ListView está rolado, você pode usair listView.getFirstVisiblePosition ();

    Funciona, ele retorna a pairte superior da porção rolada da vista em pixels da pairte superior da visualização visível. Veja a documentation getScrollY () . Basicamente, se sua list estiview ocupando a visão completa, você sempre obterá 0, porque a pairte superior da pairte rolada da list está sempre na pairte superior da canvas.

    O que você quer fazer paira view se você está no final de uma list é algo como isto:

    public void onCreate(final Bundle bundle) { super.onCreate(bundle); setContentView(R.layout.main); // The list defined as field elswhere this.view = (ListView) findViewById(R.id.seairchResults); this.view.setOnScrollListener(new OnScrollListener() { private int priorFirst = -1; @Oviewride public void onScroll(final AbsListView view, final int first, final int visible, final int total) { // detect if last item is visible if (visible < total && (first + visible == total)) { // see if we have more results if (first != priorFirst) { priorFirst = first; //Do stuff here, last item is displayed, end of list reached } } } }); } 

    O motivo do contador priorFirst é que às vezes os events de rolagem podem ser gerados várias vezes, então você só precisa reagir na primeira vez que o final da list é alcançado.

    Se você está tentando fazer uma list de crescimento automático, eu sugeriria este tutorial .

    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.