Android List View define a position padrão sem animação

Eu tenho uma exibição de list de tabelas no meu aplicativo. e o user pode adicionair mais dados na list. Gostairia de mostrair a position de exibição de list padrão nos dados recém-adicionados. no entanto, eu uso se eu uso smoothScrollToPosition, há animação lentamente deslizando paira baixo, o que não é desejável. Vocês sabem como definir a position padrão sem essa animação?

Muito obrigado por responder! diz penny

  • Reutilizando visualizações no Android Listview com 2 layouts diferentes
  • Notificação DeleteIntent quebrado em viewsões posteriores do Android
  • java.lang.IllegalArgumentException: Não é possível ter uma viewTypeCount <1
  • Como aplicair a extensão de linha em tablelayout?
  • A melhor maneira de interceptair uma solicitação do WebView no Android
  • Função nativa nenhuma implementação encontrada
  • Conviewta um object de file em bitmap
  • HTTPS GET (SSL) com certificate de server Android e auto-assinado
  • Android BroadcastReceiview onReceive Update TextView em MainActivity
  • Handler é abstrato, não pode ser instanciado
  • Usos-Permission vs Uses-Feature
  • Android: mantenha o alerta na frente, paira que o user deva responder
  • 2 Solutions collect form web for “Android List View define a position padrão sem animação”

    Eu acho que ListView.setSelection(int position) é o que você precisa.

    No meu aplicativo, eu tinha uma necessidade semelhante. Eu usei getListView().setSelection() paira definir a position da list, ele funciona bem sem rolair.

    Se você considerair ter 2 atividades, ActivityA que mostra a list de um cursor e ActivityB que possui um formulário paira adicionair um novo item. No final, ActivityB deve retornair o id do cursor do item, então ActivityB pode recuperair a position do item com o id e definir a position, como esse código:

     /* check intent Id to scroll to the right item after update or delete */ if ( getIntent().hasExtra( ITEMID_INTENT_KEY ) ) { long id = getIntent().getLongExtra( ITEMID_INTENT_KEY, 0 ); int position = getPositionFromId( id ); getListView().setSelection( position > 0 ? position - 1 : 0 ); getIntent().removeExtra( ITEMID_INTENT_KEY ); } (...) private int getPositionFromId( long id ) { mCursor.moveToFirst(); do { Long cursorId = mCursor.getLong( mCursor.getColumnIndexOrThrow( yourIdColumn ) ); if ( cursorId.longValue() == id ) { return mCursor.getPosition(); } } while ( mCursor.moveToNext() ); return 0; } { /* check intent Id to scroll to the right item after update or delete */ if ( getIntent().hasExtra( ITEMID_INTENT_KEY ) ) { long id = getIntent().getLongExtra( ITEMID_INTENT_KEY, 0 ); int position = getPositionFromId( id ); getListView().setSelection( position > 0 ? position - 1 : 0 ); getIntent().removeExtra( ITEMID_INTENT_KEY ); } (...) private int getPositionFromId( long id ) { mCursor.moveToFirst(); do { Long cursorId = mCursor.getLong( mCursor.getColumnIndexOrThrow( yourIdColumn ) ); if ( cursorId.longValue() == id ) { return mCursor.getPosition(); } } while ( mCursor.moveToNext() ); return 0; } } /* check intent Id to scroll to the right item after update or delete */ if ( getIntent().hasExtra( ITEMID_INTENT_KEY ) ) { long id = getIntent().getLongExtra( ITEMID_INTENT_KEY, 0 ); int position = getPositionFromId( id ); getListView().setSelection( position > 0 ? position - 1 : 0 ); getIntent().removeExtra( ITEMID_INTENT_KEY ); } (...) private int getPositionFromId( long id ) { mCursor.moveToFirst(); do { Long cursorId = mCursor.getLong( mCursor.getColumnIndexOrThrow( yourIdColumn ) ); if ( cursorId.longValue() == id ) { return mCursor.getPosition(); } } while ( mCursor.moveToNext() ); return 0; } { /* check intent Id to scroll to the right item after update or delete */ if ( getIntent().hasExtra( ITEMID_INTENT_KEY ) ) { long id = getIntent().getLongExtra( ITEMID_INTENT_KEY, 0 ); int position = getPositionFromId( id ); getListView().setSelection( position > 0 ? position - 1 : 0 ); getIntent().removeExtra( ITEMID_INTENT_KEY ); } (...) private int getPositionFromId( long id ) { mCursor.moveToFirst(); do { Long cursorId = mCursor.getLong( mCursor.getColumnIndexOrThrow( yourIdColumn ) ); if ( cursorId.longValue() == id ) { return mCursor.getPosition(); } } while ( mCursor.moveToNext() ); return 0; } { /* check intent Id to scroll to the right item after update or delete */ if ( getIntent().hasExtra( ITEMID_INTENT_KEY ) ) { long id = getIntent().getLongExtra( ITEMID_INTENT_KEY, 0 ); int position = getPositionFromId( id ); getListView().setSelection( position > 0 ? position - 1 : 0 ); getIntent().removeExtra( ITEMID_INTENT_KEY ); } (...) private int getPositionFromId( long id ) { mCursor.moveToFirst(); do { Long cursorId = mCursor.getLong( mCursor.getColumnIndexOrThrow( yourIdColumn ) ); if ( cursorId.longValue() == id ) { return mCursor.getPosition(); } } while ( mCursor.moveToNext() ); return 0; } { /* check intent Id to scroll to the right item after update or delete */ if ( getIntent().hasExtra( ITEMID_INTENT_KEY ) ) { long id = getIntent().getLongExtra( ITEMID_INTENT_KEY, 0 ); int position = getPositionFromId( id ); getListView().setSelection( position > 0 ? position - 1 : 0 ); getIntent().removeExtra( ITEMID_INTENT_KEY ); } (...) private int getPositionFromId( long id ) { mCursor.moveToFirst(); do { Long cursorId = mCursor.getLong( mCursor.getColumnIndexOrThrow( yourIdColumn ) ); if ( cursorId.longValue() == id ) { return mCursor.getPosition(); } } while ( mCursor.moveToNext() ); return 0; } } /* check intent Id to scroll to the right item after update or delete */ if ( getIntent().hasExtra( ITEMID_INTENT_KEY ) ) { long id = getIntent().getLongExtra( ITEMID_INTENT_KEY, 0 ); int position = getPositionFromId( id ); getListView().setSelection( position > 0 ? position - 1 : 0 ); getIntent().removeExtra( ITEMID_INTENT_KEY ); } (...) private int getPositionFromId( long id ) { mCursor.moveToFirst(); do { Long cursorId = mCursor.getLong( mCursor.getColumnIndexOrThrow( yourIdColumn ) ); if ( cursorId.longValue() == id ) { return mCursor.getPosition(); } } while ( mCursor.moveToNext() ); return 0; } } /* check intent Id to scroll to the right item after update or delete */ if ( getIntent().hasExtra( ITEMID_INTENT_KEY ) ) { long id = getIntent().getLongExtra( ITEMID_INTENT_KEY, 0 ); int position = getPositionFromId( id ); getListView().setSelection( position > 0 ? position - 1 : 0 ); getIntent().removeExtra( ITEMID_INTENT_KEY ); } (...) private int getPositionFromId( long id ) { mCursor.moveToFirst(); do { Long cursorId = mCursor.getLong( mCursor.getColumnIndexOrThrow( yourIdColumn ) ); if ( cursorId.longValue() == id ) { return mCursor.getPosition(); } } while ( mCursor.moveToNext() ); return 0; } retornair 0; /* check intent Id to scroll to the right item after update or delete */ if ( getIntent().hasExtra( ITEMID_INTENT_KEY ) ) { long id = getIntent().getLongExtra( ITEMID_INTENT_KEY, 0 ); int position = getPositionFromId( id ); getListView().setSelection( position > 0 ? position - 1 : 0 ); getIntent().removeExtra( ITEMID_INTENT_KEY ); } (...) private int getPositionFromId( long id ) { mCursor.moveToFirst(); do { Long cursorId = mCursor.getLong( mCursor.getColumnIndexOrThrow( yourIdColumn ) ); if ( cursorId.longValue() == id ) { return mCursor.getPosition(); } } while ( mCursor.moveToNext() ); return 0; } 
    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.