如何使Marquee TextView等待特定时间,直到它开始水平滚动? 因为当我打开一个Activity时,它会直接开始滚动。因此,你必须等到它的开始位置才能阅读它。
答案 0 :(得分:2)
在XML中,我只是简单地添加TextView
:
<TextView
android:id="@+id/textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hello World!, Hello World!, Hello World!, Hello World!, Hello World!, Hello World!, Hello World!, Hello World!"
android:ellipsize="marquee"
android:singleLine="true"
android:marqueeRepeatLimit="marquee_forever"
android:focusable="true"
android:focusableInTouchMode="true"
android:freezesText="true"
android:maxLines="1"
android:scrollbars="none" />
然后在代码中(在Activity中,但可以在任何地方):
TextView textView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
textView = (TextView) findViewById(R.id.textView);
textView.setSingleLine(false);
textView.setMaxLines(1);
}
@Override
protected void onResume() {
super.onResume();
textView.postDelayed(new Runnable() {
@Override
public void run() {
textView.setSingleLine(true);
}
}, 3000);
}
答案 1 :(得分:1)
正如前面提到的in this answer,为了激活textview选框,你必须添加:
tv.setSelected(true);
由于你想延迟启动选框,你必须把它放在你的run()中这样
tv.postDelayed(new Runnable() {
@Override
public void run() {
tv.setSelected(true);
}
}, 1000);
这会推迟它
答案 2 :(得分:0)
<TextView
android:id="@+id/testing"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:ellipsize="marquee"
android:focusable="true"
android:focusableInTouchMode="true"
android:singleLine="true"
android:text="Some veryyyyy long text with all the characters that cannot fit in screen, it so sad :( that I will not scroll"
android:layout_below="@id/toolbar"
/>
然后,在使用setSelection设置的活动中为true。我已经测试了它及其工作
testing.postDelayed(new Runnable() {
@Override
public void run() {
testing.setMaxLines(1);
testing.setEllipsize(TextUtils.TruncateAt.MARQUEE);
testing.setMarqueeRepeatLimit(10000);
testing.setSelected(true);
}
}, 3000);
答案 3 :(得分:-1)
您需要做的就是延迟textview的焦点,以便在一段时间后启动它。以下代码在2秒后开始滚动选取框。
yourTextview.postDelayed(new Runnable() {
@Override
public void run() {
yourTextview.setSelected(true);
}
}, 2000);
P.S:您首先需要发布到目前为止所尝试的内容。