RT,现在item焦点的移动很难看,如果实现滑动的效果呢?
------解决方案--------------------
我理解了你的意思,实际上我也想这么干,但一直没找到方法。我看过苹果的TV,焦点的移动是有过渡的,而android里面的焦点移动是个突变的过程,焦点从一个item到另一个item几乎是瞬移,很生硬。
------解决方案--------------------
这个例子很多的
我不废话了 看资料:
http://archive.cnblogs.com/a/2079253/
------解决方案--------------------
- Java code
listView.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { /** * 思路:每单击一个ListItem的时候,设置该ListItem中的TextView.setSelected(true) * ,使用positionCache记录上一次单击的ListItem的position,每次单击时判断当前 * position是否等于positionCache,如果相等则不做任何操作,如果不相等,则设置 * 当前position的ListItem跑马灯效果,并去除positionCache对应的ListItem的跑马灯 * 效果。 */ //判断此次单击的position与前一次单击的position是否相等 if(position!=positionCache){ //如果两次单击不是同一个position,判断是否是第一次单击(第一次单击 //不需要取消上一次的跑马灯效果) if(positionCache>=0){ View preView=listView.getChildAt(positionCache); TextView preTv=(TextView) preView.findViewById(R.id.title);//上一次单击的TextView preTv.setSelected(false); //取消跑马灯效果 preView.setBackgroundDrawable(null);//去掉背景图片 } TextView tv=(TextView) view.findViewById(R.id.title);//本次单击的TextView tv.setSelected(true); //设置跑马灯效果 view.setBackgroundResource(R.drawable.icon);//设置单击后的背景图片 positionCache=position; //缓存每次单击的position } } });