2012-06-25 38 views
5

Tôi đã tạo một loạt các tab có chiều rộng cố định là 100px. Một tab chứa một hình ảnh với một số văn bản bên dưới nó. Nếu văn bản quá dài để vừa, tôi muốn nó tự động cuộn. Tôi chỉ muốn một dòng. Tôi đã thử những điều sau nhưng nó không hoạt động. Tôi đang sử dụng Android 2.3:Android: Tự động cuộn văn bản trong 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> 

Bất kỳ ý tưởng nào tại sao tính năng này không hoạt động? Tôi đi qua các giải pháp từ một bài khác và có người sử dụng chỉ ra rằng nó hoạt động.

Trả lời

11

Trong hoạt động của bạn, bạn cần phải thêm nếu bạn muốn Marquee trên văn bản

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

Sau khi đăng này, tôi đã làm một số tìm kiếm hơn và tình cờ gặp này là tốt. Cảm ơn rất nhiều! – AndroidDev

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

Hãy nhận biết rằng nếu văn bản có chiều dài nhỏ hơn chiều rộng của các giới hạn được xác định cho nó nó S W KHÔNG cuộn. Trong trường hợp này, bạn có thể muốn mở rộng văn bản với chính nó như sau:

-. . . . .

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

Và nếu bạn muốn văn bản của bạn để Marquee mãi mãi:

m_textView.setMarqueeRepeatLimit(-1); 
Các vấn đề liên quan