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
метод. Оба пути ужасны в моем случае. Я не нашел никаких встроенных методов. Я что-то пропустил? Есть ли что-то более элегантное?