android View 将设置下一个焦点 Id 重置为默认行为



我正在实现这个到具有远程功能的安卓电视盒。

我在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.

最新更新