第一步:音乐播放器

来源:互联网 发布:mac文明6补丁包 编辑:程序博客网 时间:2024/06/07 12:01

一点一点 写

1.遇到一个问题无法解决。ViewPager 和 Fragment 使用采用Arguments 传值,只能接收到前俩个界面的值。

2.因为做导航要实现遥控选中的情况,所以Android 的 条目选中事件不可用。使用ListView的背景改变来默认遥控选中,但是在getChildat方法时遇到了大问题: 

NullPointerException: Attempt to invoke virtual method 'android.view.ViewGroup$LayoutParam

没错,就是这个空指针。解决办法如下:ListView.post方法来异步处理。原因如下:

    setAdapter() 其实是异步的 ,调用了这个方法, ListView 的 item 并没有立马创建,而是在下一轮消息处理时才创建。弄明白了这个,就有了前面代码中的解决办法:使用 post() 提交一个 Runnable() 对象,在 Runnable() 内部来做默认选中这种初始化动作。

3.重叠问题,一个控件的背景会侵占到其它控件的位置,背景选择器+背景透明。

4.焦点问题,对于遥控端来说,所有的操作都是通过焦点来实现的。

descendantFocusability 属性有三个参数  1.beforeDescendants:viewgroup会优先其子类控件而获取到焦点  2.  afterDescendants:viewgroup只有当其子类控件不需要获取焦点时才获取焦点  3.blocksDescendants:viewgroup会覆盖子类控件而直接获得焦点  我在嵌套很多布局的时候通常会把所有可能干扰的控件Focusable 设为false.最后在条目的单个控件设置descendantFocusability 属性即可。

5.获取本地歌曲的信息 contentResolver 来查询,很详细,可自行百度。

6.代码地址  http://download.csdn.net/download/xiaoxiaoluc/10136093




原创粉丝点击