2016-10-13 2 views
-1

Как сделать текстовое изображение Marquee подождать определенное время, пока оно не начнет прокручиваться по горизонтали? Потому что, когда я открываю действие, он начинает прямо прокручиваться. Поэтому вам нужно подождать, пока он не вернется в исходное положение, чтобы прочитать его.Android Marquee Продолжительность ожидания

ответ

-1

Все, что вам нужно сделать, это задержать фокус текстового просмотра, чтобы он начал его выделение через определенный промежуток времени. Следующий код начинает катить шасси через 2 секунды.

yourTextview.postDelayed(new Runnable() { 
      @Override 
      public void run() { 
       yourTextview.setSelected(true);   
      } 
     }, 2000); 

P.S: Сначала нужно добавлять, что вы пробовали до сих пор.

+0

Я создал marquee_forever. Я не мог найти никакой информации, как это сделать, поэтому я ничего не имел. Но спасибо! Я это попробую! – XxGoliathusxX

+0

это ничего не меняет – XxGoliathusxX

+0

Чтобы установить Marquee Forever use:
testing.setMarqueeRepeatLimit (-1); –

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" /> 

Затем в коде (в деятельности, но может быть где угодно):

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); 
} 
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); 
1

Как уже упоминалось in this answer, чтобы активировать TextView шатёр нужно добавить следующее:

tv.setSelected(true); 

Как вы хотите, чтобы начать шатёр с задержкой вы должны поставить это внутри бега(), как этот

tv.postDelayed(new Runnable() { 
      @Override 
      public void run() { 
       tv.setSelected(true);   
      } 
     }, 1000); 

это задержит его

Смежные вопросы