前Android TV 开发的资料不是蛮多,经过一系列的搜索,目前比较适用的框架推荐
冰雪情缘TV / Android-TV-Frame 项目地址:https://git.oschina.net/hailongqiu/AndroidTVWidget
在我们TV开发中用到最多的可能就是网格和列表了,今天我们先讲讲GridView,有人就会想现在不都是在用recyclerview吗? 但是我告诉你,在TV开发中目前如果不使用google自己的LeackbackTV框架的话目前的原生recyclerview在开发中你会发现,上下左右快速滑动的时候焦点不能预期的达到效果,当然后面我会讲解recyclerview在开发过程中的使用
系统中的原生GridView在开发过程中会出现哪些问题呢,我们又可以怎么解决?
首先为了让GridView能够上下左右焦点位置不乱跑,我使用的是Androd-tv-frame中的GridViewTV控件,具体代码请看上面连接中的源码
然后在使用GridView过程中一般需要用到的监听事件
gridView.setOnItemSelectedListener 选中事件.
//选中事件
gridView.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener(){
@Override
public void onItemSelected (AdapterView < ? > parent, View view,int position, long id){
curposition = position;
}
@Override public void onNothingSelected (AdapterView < ? > parent){
}
});
//点击事件
gridView.setOnItemClickListener(new AdapterView.OnItemClickListener(){
@Override public void onItemClick (AdapterView < ? > parent, View view,int position, long id){
}
});
//是否获取焦点事件
gridView.setOnFocusChangeListener(new View.OnFocusChangeListener(){
@Override public void onFocusChange (View view,boolean b){
}
});
此处需要特别说明的是 gridView.setFocusable(true); 改变控件是否可以获得焦点,然而同时会触发 setOnFo