Есть ли способ отключить анимацию Android ListView?

Когда мы перетаскиваем ListView в конец или вверх, мы всегда можем перетащить его немного дальше, и он покажет пустой фон, затем, когда мы отпустим его, ListView вернется обратно. Это эффект анимации по умолчанию для ListView.

Я хотел бы отключить этот эффект анимации.


person Xi 张熹    schedule 25.04.2011    source источник


Ответы (4)


Это может сработать. Создайте новый класс, содержащий следующее.

import android.view.View;

public class OverScrollDisabler
{
    public static void disableOverScroll(View view)
    {
        view.setOverScrollMode(View.OVER_SCROLL_NEVER);
    }
}

Затем в вашем коде

if(Build.VERSION.SDK_INT >= 9)
{
    OverScrollDisabler.disableOverScroll(myView);
}

Подробнее здесь: http://jasonfry.co.uk/?id=30

person Haphazard    schedule 25.04.2011

В вашем xml добавьте атрибут

android:overScrollMode="never"
person slott    schedule 20.12.2012

http://developer.android.com/reference/android/widget/AbsListView.html#setOverScrollMode(int)

person Alex Orlov    schedule 25.04.2011
comment
Спасибо за ссылку. Но мое приложение основано на Android 1.6. Не знаете, есть ли решение под 1.6? - person Xi 张熹; 25.04.2011

Для более старых версий API ‹ 9 учитывайте:

@Override
public boolean dispatchTouchEvent(MotionEvent ev)
{
    int action = ev.getAction();


    if (action == MotionEvent.ACTION_MOVE) {
        ev.setAction(MotionEvent.ACTION_CANCEL);
        super.dispatchTouchEvent(ev);
        return true;
    }       

    return super.dispatchTouchEvent(ev);
}
person user1112061    schedule 21.03.2012