Android Marquee等待时间

时间:2016-10-13 21:42:30

标签: android textview wait marquee

如何使Marquee TextView等待特定时间,直到它开始水平滚动? 因为当我打开一个Activity时,它会直接开始滚动。因此,你必须等到它的开始位置才能阅读它。

4 个答案:

答案 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:您首先需要发布到目前为止所尝试的内容。