我正在实现这个到具有远程功能的安卓电视盒。
我在ScrollView中有一个包含生成视图的线性布局。
我以编程方式将第一个视图的 NextFocusUpId 设置为最后一个视图,反之亦然,因此当用户向上浏览第一个视图时,它会旋转到最后一个视图,反之亦然。
问题是当我稍后按字母顺序对列表进行排序时,第一个和最后一个视图位于中间,当用户向上浏览列表并到达第一个视图(排序之前)时,它会跳转到最后一个视图(排序之前),而不是旁边的视图。
如果我将 NextFocusUpId 设置为自身,则用户无法在视图排序之前和之后浏览视图。
view1.setNextFocusUpId(view1.getId());
如果可能的话,我想避免手动迭代视图,并在运行排序时在每个视图中添加NextFocusUpId和NextFocusDownId。
当提出这个问题时,我找到了这个解决方案。
view1.setNextFocusUpId(View.NO_ID);
进行重置。
编辑:似乎在文档中,文档中有解决方案http://developer.android.com/reference/android/view/View.html#setNextFocusDownId%28int%29
Parameters
nextFocusDownId The next focus ID, or NO_ID if the framework should decide automatically.