我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
withTimer
并检查是否horizontalGrid.getLayoutManager().isSmoothScrolling()
为假。另一个不太可靠的解决方案是使用Handler
withpostDelayed
方法。就我而言,这两种方式都很丑陋。我还没有找到任何内置方法。我错过了什么吗?有什么更优雅的吗?