evilyin(寒羽光)的博客
就差一个写代码的了!

Android listview 点击item没有变色效果

又遇一坑:
listview里写了半天,发现点击item的时候默认的变灰色的效果没了。

一开始试着修改listview的属性:android:listSelector 但是改成什么都没有效果。

后来以为是由于item里面子view把焦点抢走了,导致listview得不到焦点没法响应点击事件,但是写了个OnItemClickListener以后发现点击事件可以正常响应。

网上找了半天总算找到了原因:因为设置了item的背景颜色导致了默认的点击变色效果失效。如果要设置listview的背景颜色的话直接在listview的属性里设置就好了。如果一定要设置item的背景色,网上给出了一个解决办法:

ListView中设置item的背景色后,默认的行点击颜色失效的解决办法

本文的方法来自此处:http://daniel-codes.blogspot.com/2010/07/how-to-change-listview-rows-background.html

只说明一下用法:

建立一个drawable的XML文件,当然放在drawable文件夹下,比如保存文件为bg_list_item.xml

输入以下代码:

<?xml version="1.0" encoding="UTF-8"?>

<selector xmlns:android="http://schemas.android.com/apk/res/android">

  <item android:state_window_focused="false" android:state_selected="true" android:drawable="@android:color/transparent" /> 

  <item android:state_selected="true" android:drawable="@android:color/transparent" /> 

  <item android:state_pressed="true" android:state_selected="false" android:drawable="@android:color/transparent" /> 

  <item android:state_selected="false" android:drawable="@color/guide_list_item_bg" /> 

</selector>

注意红字的地方,改成你想用的背景图片或者颜色。

在XML布局文件中可以,用 android:background=”@drawable/bg_list_item” 设置。

在java中可以用 View的 setBackgroundResrouce(R.drawable.bg_list_item); 来设置

作者:holmes Zhang
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,否则保留追究法律责任的权利。

Android Studio中找不到某些v4包中方法的解决方法

Android Studio中用gradle管理依赖包很好很强大,但是也会有一些特别奇怪的问题。

自己在做项目的时候碰到这样的问题:原本gradle里的support-v4:23.0.0用的好好的,但是导入另一个依赖包以后,一些比如Fragment里的getContext(), getChildFragmentManager(), addOnPageChangeListener等方法变成红字,找不到了。由于这几个方法都是support-v4包里的,猜想应该是v4包出了问题。

在project下的external libraries下面,发现v4包有两个,一个support-v4:23.0.0,一个support-v4-r7,进一步研究发现v4-r7包里正是缺少那些变红的方法的。于是尝试删除v4-r7,但是并没有用——删除后编译会报错,重启Android Studio以后v4-r7又出现了。

没办法只能上网找了一圈解决方案,终于找到原因了:导入的依赖包里依赖了v4-r7。解决方案是在gradle的dependencies里找到依赖了v4-r7的包,添加这样一行代码:

dependencies {
    compile('xxx') {
        exclude module: 'support-v4'
    }
}

就可以了。

当然这样的解决方案有副作用,就是依赖了v4-r7的包可能无法正常工作了。这个似乎没有办法。

网上的解决方案里提到,如果不知道哪个包依赖了的话,可以run gradle -q dependencies 来查看依赖关系。但是我自己尝试了一下,并不能在终端里直接使用这个命令,所以也不知道这个命令到底是怎么用的……

hexo转移至Mac之中文标题测试

终于把hexo转移到Mac上了,着实花了一点时间,之前在windows上面设置的右上角“fork me on github”找不到在哪里改了,主题也懒得换了,算了吧,用默认主题挺好的,本来就是个低调的人,不需要搞这些花哨的东西。