Android中需要实现走马灯的效果, 网上很多都是用线程结合Textview实现的效果,我是很鄙视这种做法的,为一个走马灯,还要单起一个线程。最好还是用纯TextView来实现,在TextView中,可以设置marqueen和focusable以及focusableInTouchMode, 但是一圈试下来基本上都没有什么效果,所以说么, 这就是个二货的控件。也有同学的解决办法是设置TextView的上层focuse,然后在代码中在设置setHorizontallyScrolling(true)和setFocusable(true); 但是这两个方法在多层布局嵌套后,也没有作用,这个是我自己试到的情况,也许不准确,你也别喷!。还有一点需要注意的是,滚动的内容和TextView的宽度有一定的关系,有时候内容的长度小于Textview的宽度时,也不能解决。
究其原因,貌似TextView在没有焦点的时候,是不滚动的, 这是个二货的设计,个人来讲,我是不愿意在代码中去设置焦点的,算是有点小洁癖, 认为布局的东西,就应该尽量在布局中实现。最后找了一大堆TextView的属性,都写上去,最主要的是给TextView设置焦点。这样才解决问题,下面贴上代码。
<TextView
android:id="@+id/notices"
android:layout_width=&