2016-07-04 30 views
2

如何在啓動前延遲運行TextView中的文本選取框?
這時我用下面的代碼開始:在一段時間後運行TextView選取框

mTVTitle.postDelayed(new Runnable() { 
    @Override 
     public void run() { 
      mTVTitle.setFocusableInTouchMode(true); 
      mTVTitle.invalidate(); 
     } 
    }, 1000); 

TextView XML:

<TextView 
    android:id="@+id/tvTitle" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:ellipsize="marquee" 
    android:focusable="true" 
    android:marqueeRepeatLimit="2" 
    android:scrollHorizontally="true" 
    android:singleLine="true" 
    android:textAppearance="?attr/titleTextAppearance" 
    android:textColor="@color/white"/> 

但它不工作,但如果我在XML中設置此屬性,那麼所有的權利。如何解決它我可以以編程方式啓動一個選取框?

回答

1

至於以激活TextView的滾動字幕中提到here你必須補充一點:

mTVTitle.setSelected(true); 

當你要開始與你必須把這個你運行(內部延遲字幕)這樣

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

謝謝!雖然,我不明白爲什麼在代碼中我們使用另一個屬性?我測試過...沒有必要調用'invalidate()' –

+1

是的,它不需要調用invalidate()。但是,如果您想將普通文本視圖轉換爲以編程方式啓用字幕的文本視圖,則可能必須調用invalidate()。編輯我的答案,因爲我們沒有做任何這樣的改變。 –

+0

我明白了。謝謝! –