Android知识点和文章分享

安卓TV端使用RecyclerView的焦点异常处理

2017-06-22  本文已影响0人  coder小黄人

最近在项目中使用RecyclerView,遇到了一些焦点问题,特此记录下。

  1. 在删除一个item或者分页加载新的数据后,使用notifyDataSetChanged()方法后,焦点会消失或跳到其他位置,解决方案如下:
  1. 开发中产品要求点击某个item后返回来焦点还要在之前的位置上,解决方法也很简单,就是记录之前的焦点位置,返回后让RecyclerView滑动过去:
       recyclerView.scrollToPosition(actorFocusPosition);
       recyclerView.postDelayed(new Runnable() {
           @Override
           public void run() {
               View view = recyclerView.getLayoutManager()
                                   .findViewByPosition(actorFocusPosition);
              if (view != null) {
                   view.requestFocus();
               }
           }
       }, 50);

设置了50毫秒的延迟,是因为滑动需要时间,当然这个时间可根据情况自己修改。

上一篇 下一篇

猜你喜欢

热点阅读