原文地址:http://blog.csdn.net/luoyebuguigen/article/details/37533631
关键是需要在TextView中嵌入requestForcus标签才会有效果。
<TextView
android:id="@+id/widget_item_name"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:paddingLeft="10dip"
android:paddingRight="10dip"
android:text="Baby Room"
android:textColor="@android:color/white"
android:textSize="@dimen/testSize18"
android:singleLine="true"
android:ellipsize="marquee"
android:marqueeRepeatLimit="marquee_forever"
android:scrollHorizontally="true"
android:focusable="true"
android:focusableInTouchMode="true">
<requestFocus
android:focusable="true"
android:focusableInTouchMode="true"
android:duplicateParentState="true"/>
</TextView>
另外还有不使用ScrollView也可滚动的方法
TextView textview = (TextView) findViewById(R.id.text);
/** *
* 只有调用了该方法,TextView才能不依赖于ScrollView而实现滚动的效果。
* 要在XML中设置TextView的textcolor,否则,当TextView被触摸时,会灰掉。
*/
textview.setMovementMethod(ScrollingMovementMethod.getInstance());
xml如下:
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="18sp"
android:scrollbars="vertical"
android:maxLines="12"
android:textColor="@color/white"
android:id="@+id/text"
android:text="hello world"
></TextView>
备注:有些字符串为英文时,无法滚动,需要在字符串增加一个换行符
// 单曲 有些歌曲名和艺术家名是英文,无法进行滚动,需要再后面加一个回车符
ct_dec_playbar.setText(getString(R.string.play_title, title, artistname) + "
");