我在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
方法。在我的情况下,这两种方式都很难看。
我还没有找到任何内置方法。我错过了什么吗?还有更优雅的东西吗?