Страницы

Поиск по вопросам

воскресенье, 26 января 2020 г.

Постоянное обновление adapter'a

#android #java


Здравствуйте.
Есть Adapter в котором в каждом item есть картинка, которая должна постоянно вращаться
в зависимости от положения сенсора на устройстве.  Положение картинки в item я меняю
с помощью обновления адаптера, т.е. таким образом:
private SensorEventListener eventListener = new SensorEventListener() {

    @Override
    public void onAccuracyChanged(Sensor sensor, int accuracy) {
    }

    @Override
    public void onSensorChanged(SensorEvent event) {         
        adapter.angle = event.values[0];
        adapter.notifyDataSetChanged();
    }
};

В зависимости от угла уже вращаю картинку. Это работает, но из-за того, что постоянно
обновляется адаптер очень много раз приходится нажимать на item, чтобы сработал setOnItemClickListener.
Есть у кого-нибудь какие-нибудь мысли как решить это?    


Ответы

Ответ 1



notifyDataSetChanged() для всего списка, ради изменения 1 строки? Сначала чекаем getFirstVisiblePosition() и getLastVisiblePosition(), если все норм, то берём View с помощью getChildAt(int index) и меняем вьюху. Тогда не будет полной перерисовки всего списка.

Комментариев нет:

Отправить комментарий