2012-06-25 43 views
5

固定幅が100pxの一連のタブを作成しました。タブには、テキストの下にテキストが含まれています。テキストが長すぎてフィットしない場合は、自動的にスクロールします。私は1つの行だけが必要です。私は以下を試みたが、うまくいかなかった。私はAndroid 2.3を使用しています:Android:TextViewのテキストの自動スクロール

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:layout_marginRight="3dp" 
    android:layout_marginTop="3dp" 
    android:background="#ff737373" 
    android:gravity="center" 
    android:minWidth="64dp" 
    android:orientation="vertical" 
    android:padding="3dp" > 

    <ImageView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:tag="tabImage" > 
    </ImageView> 

    <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:ellipsize="marquee" 
     android:marqueeRepeatLimit="marquee_forever" 
     android:focusable="true" 
     android:focusableInTouchMode="true" 
     android:scrollHorizontally="true" 
     android:singleLine="true" 
     android:maxWidth="100px" 
     android:tag="tabCaption" 
     android:textColor="#ffd9d9d9" 
     android:textSize="16sp" /> 

</LinearLayout> 

これはなぜ機能しないのでしょうか?私は別の投稿から解決策を見つけ、ユーザーはそれが動作することを示しました。

答えて

11

をそれが定義されている境界の幅よりも長さが小さい場合、それはスクロールされません。この場合、テキスト自体を次のように拡張することができます。

- 。 。 。 。 。

String charsInBreak = " "; 
while (bounds.width() < this.m_width) 
{ 
    m_text = (m_text + charsInBreak + m_text); 
    paint.getTextBounds(m_text, 0, m_text.length(), bounds); 
} 

そして、あなたはあなたのテキストは永遠マーキーしたい場合:

m_textView.setMarqueeRepeatLimit(-1); 
+0

これを掲示した後、私はいくつかのより多くの検索を行なったし、同様にこの出くわしました。とにかくありがとう! – AndroidDev

3

あなたがこのしようとする場合があります。if文があることに注意してください、あなたはテキスト

TextView tv=(TextView)findViewById(R.id.textview1); 
    tv.setSelected(true); 
0
<TextView 

     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:singleLine="true" 
     android:gravity="center" 
     android:ellipsize="marquee" 
     android:focusable="true" 
     android:focusableInTouchMode="true" 
     android:marqueeRepeatLimit="marquee_forever" 
     android:text="Auto text scroller" 
     android:textSize="50sp" 
     /> 
関連する問題