OnChildViewHolderSelectedListener вызывается до завершения анимации в HorizontalGridView с помощью setSelectedPositionSmooth

Я использую HorizontalGridView в android.support.v17.leanback.widget пакет. Проблема в том, что OnChildViewHolderSelectedListener называется слишком рано.

    horizontalGrid.setSelectedPosition(position);
    horizontalGrid.setOnChildViewHolderSelectedListener(new OnChildViewHolderSelectedListener() {
        @Override
        public void onChildViewHolderSelected(RecyclerView parent, RecyclerView.ViewHolder child, int position, int subposition) {
            super.onChildViewHolderSelected(parent, child, position, subposition);
            //the animation isn't complete
            //horizontalGrid.getLayoutManager().isSmoothScrolling() is true;
        }
    });

Единственный выбор, который я знаю, это использовать TimerTask с Timer и проверьте, если horizontalGrid.getLayoutManager().isSmoothScrolling() ложно Другое менее надежное решение заключается в использовании Handler с postDelayed метод. Оба пути ужасны в моем случае. Я не нашел никаких встроенных методов. Я что-то пропустил? Есть ли что-то более элегантное?

0 ответов

Другие вопросы по тегам