TV端使用GridView第一次选中不触发onItemSelec
2018-11-09 本文已影响0人
奈蜇
TV端使用GridView偶然发现的BUG,为其设置了setOnItemSelectedListener,但当焦点第一次进入的时候不会触发onItemSelected。
嗯哼 百度咯,有一些解决的办法。
比如使用反射调用fireOnSelected方法
try {
Method fireOnSelected = AdapterView.class.getDeclareMethod("fireOnSelected ");
fireOnSelected.setAccessible(true);
fireOnSelected.invoke(mGrid); //运行该方法
} catch (Exception e) {
e.printStackTrace();
}
作者:阿曌
来源:CSDN
原文:https://blog.csdn.net/XieYupeng520/article/details/50515537
偷鸡解决:
反射可以不用就不用嘛,为什么不偷鸡呢。
提出一个很简单的方法解决,在用户感觉不到情况下触发掉这个第一次不就好了嘛。
mGridView.setSelection(-1);
//需要延迟100ms再次执行setSelection,否则不触发onItemSelected。
mGridView.postDelayed(new Runnable() {
@Override
public void run() {
mGridView.setSelection(0);
}
},100);