2

HorizontalGridViewandroid.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;
        }
    });

我知道的唯一选择是使用TimerTaskwithTimer并检查是否horizontalGrid.getLayoutManager().isSmoothScrolling()为假。另一个不太可靠的解决方案是使用HandlerwithpostDelayed方法。就我而言,这两种方式都很丑陋。我还没有找到任何内置方法。我错过了什么吗?有什么更优雅的吗?

4

0 回答 0