在我的Android应用程序中,我需要连续滚动字幕文本。 在我的Xml中我有这个代码:
<TextView
android:id="@+id/widget28"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:singleLine="true"
android:ellipsize="marquee"
android:fadingEdge="horizontal"
android:marqueeRepeatLimit="marquee_forever"
android:scrollHorizontally="true"
android:textColor="#ff4500"
android:text="Simple application that shows how to use RelativeLayout " />
在我的Java源代码中,我有:
TextView tv = (TextView )findViewById(R.id.widget28);
tv.setSelected(true);
现在我的问题是这个代码工作正常,并且即使焦点不在控件上但是文本的滚动不完整,也可以正常运行。我需要文本完全滚动。如果我在文本之前添加空间并且在文本之后它工作正常,但这不是很好的编程。这有什么好方法吗?
答案 0 :(得分:2)
如果要连续滚动,必须在xml中使用它:
android:ellipsize="marquee"
android:fadingEdge="horizontal"
android:focusable="true"
android:focusableInTouchMode="true"
android:marqueeRepeatLimit="marquee_forever"
android:scrollHorizontally="true"
android:selectAllOnFocus="true"
android:singleLine="true"
没有必要把setSelected(true);在文件中
PS。您只需在焦点更改时单击它。
答案 1 :(得分:0)
我不明白你的问题。
我已经复制了您的代码并将TextView
插入到RelativeLayout
fill_parent
的2轴中,它运行正常(不是您想要的吗?):
我在默认模拟器2.1和2.2上测试了该代码。没问题。
这是我的班级:
public class TextViewMarquee extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.textview);
findViewById(R.id.widget28).setSelected(true);
}
}
关联的xml:
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<TextView
android:id="@+id/widget28"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:ellipsize="marquee"
android:fadingEdge="horizontal"
android:marqueeRepeatLimit="marquee_forever"
android:scrollHorizontally="true"
android:singleLine="true"
android:text="Simple application that shows how to use RelativeLayout"
android:textColor="#ff4500" />
</RelativeLayout>
这实际上是全部,在清单或风格中没有神秘的线条或......
答案 2 :(得分:0)
试试这个::
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:singleLine="true"
android:ellipsize="marquee"
android:fadingEdge="horizontal"
android:marqueeRepeatLimit="marquee_forever"
android:scrollHorizontally="true"
android:textColor="#ff4500"
android:text="Simple application that shows how to use RelativeLayout "
android:focusable="true"
android:focusableInTouchMode="true" android:freezesText="true"></TextView>
答案 3 :(得分:0)
伙计们,TextView只在它聚焦时滚动它的文本。一旦失去焦点,文本滚动就会停止。