当textview文字比较长实现水平滚动的焦点问题

由于安卓手机分辨率及屏幕尺寸的多样性,有时使用textview可能会无法显示完全,此时就简单地想到了让文字实现水平滚动。水平滚动的实现其实是比较简单的,唯一的一个难点就是如何让textview获得焦点,因为只有获得焦点,设置的滚动属性才会生效。        水平滚动属性如下:                          

android:ellipsize="marquee"                

android:focusable="true"                

android:singleLine="true"                

android:marqueeRepeatLimit="marquee_forever"                

android:focusableInTouchMode="true"                

android:scrollHorizontally="true"       

虽然直接将textview设置focusable为true,当这个可能因为外部布局的一些操作而导致失去焦点。       我简单介绍一下常见的3种解决无法滚动的问题,如果仍然无法帮你解决,你可参考下面的一篇博客:       http://blog.csdn.net/chenshi011/article/details/7792326      1.当textview所在布局不存在焦点失去问题时,直接设置为上面的滚动属性即可。    2.当外部存在GridView、ListView等的时候,你的不经意之间的setAdapter就可能使textview的焦点失去,自然也就无法滚动了。此时你可以在setAdapter后将setAdapter的控件设置setFocusable(false)。    3.当所要滚动的textview控件是Item布局中的一部分时,这时一般建议对item布局的父容器(如listview)添加属性android:focusable="true",切记不可简单的直接将textview设置focusable为true,否者listview可能无法实现点击。当然这种情况我们一般的操作是只有选中的item中的textview才会滚动。此时,我们可简单的在getview中进行判断,将选中的item中的textview设置setSelected(true),这样就可以滚动了。 --------------------- 本文来自 yyly2s6x3x3 的CSDN 博客 ,全文地址请点击:https://blog.csdn.net/yyly2s6x3x3/article/details/46888887?utm_source=copy

猜你喜欢

转载自blog.csdn.net/qq_26467207/article/details/82825329