recyclerview addOnLayoutChangeListener()无法识别列表中的所有位置

时间:2018-04-04 14:56:37

标签: android android-layout android-recyclerview

我正在使用RecyclerView addOnLayoutChangeListener()查找点击的位置,并将重点放在列表中最后点击的项目上。但findViewByPosition(int position)方法仅识别11个中的前7个项目。 因此,如果点击的项目位于位置8,9,10或11 view为空并且不请求焦点。

 if(clickedPosition !=-1){
    recycler.addOnLayoutChangeListener(new View.OnLayoutChangeListener() {
        @Override
        public void onLayoutChange(View v, int i, int i1, int i2, int i3, int i4, int i5, int i6, int i7) {
            View view = recycler.getLayoutManager().findViewByPosition(clickedPosition);
            if (view != null) {
                view.requestFocus();
            }
            clickedPosition = -1;
            recycler.removeOnLayoutChangeListener(this);
        }
    });
}

0 个答案:

没有答案