最近一段时间回来修改Android tv的相关故障。
这里记录一下Android tv的一些坑。
1.browsefragment的自动焦点是第一个出现的row.
注意是第一个出现,如果是并发数据,第一个出现的不一定是第一个,这个就坑了。可以通过24的api
void setSelectedPosition (int position)
当然你这样强制弄到第一个那去,也是有问题的,现在是老老实实顺序请求了。。。有并发的解决方法请赐教。
2.row空的时候点击进入listrow,当数据刷新(row move+row add)的时候出现crash.
解决办法,永远不要弄个空的listrow显示。。。
3.刷新row用remove+add,原来希望只刷内部的rowlist的adapter,触发界面刷新。
实际证明不靠谱。。。。感觉应该是如下这样修改,mAdapter的list的实例实际是没有变化的。。。通知变更无效。
ListRow row = (ListRow) mAdapter.get(index1); // if (row.getAdapter() instanceof ArrayObjectAdapter) { // Log.e(TAG, "repeat index=" + index1); // ((ArrayObjectAdapter) ((ListRow) mAdapter.get(index1)).getAdapter()).clear(); // ((ArrayObjectAdapter) ((ListRow) mAdapter.get(index1)).getAdapter()).addAll(0, photos); // int adaptersize = ((ArrayObjectAdapter) ((ListRow) mAdapter.get(index1)).getAdapter()).size();