Шатёр в андроид - PullRequest
       7

Шатёр в андроид

1 голос
/ 19 августа 2010

В моем приложении для Android мне нужно непрерывно прокручивать выделенный текст.В моем XML-коде у меня есть этот код:

<TextView
   android:id="@+id/widget28"
   android:layout_width="wrap_content"
   android:layout_height="wrap_content"
   android:layout_alignParentRight="true"                
   android:singleLine="true"        
   android:ellipsize="marquee"
   android:fadingEdge="horizontal"
   android:marqueeRepeatLimit="marquee_forever"
   android:scrollHorizontally="true"
   android:textColor="#ff4500"
   android:text="Simple application that shows how to use RelativeLayout " />

И в моем исходном коде Java у меня есть:

TextView tv = (TextView )findViewById(R.id.widget28);
tv.setSelected(true);

Теперь моя проблема заключается в том, что этот код работает нормально, и marquee работает нормально, даже еслифокус не на элементе управления, но прокрутка текста не завершена. Мне нужно, чтобы текст полностью прокручивался. Если я добавляю пространство к тексту как до, так и после текста, он работает нормально, но это не очень хорошее программирование.Есть ли хороший способ для этого?

Ответы [ 4 ]

2 голосов
/ 04 января 2012

Если вы хотите, чтобы он непрерывно прокручивался, вы должны использовать это в своем xml:

    android:ellipsize="marquee"
    android:fadingEdge="horizontal"
    android:focusable="true"
    android:focusableInTouchMode="true"
    android:marqueeRepeatLimit="marquee_forever"
    android:scrollHorizontally="true"
    android:selectAllOnFocus="true"
    android:singleLine="true"

Не нужно ставить setSelected (true); в файле

PS. Вы должны щелкнуть по нему только при изменении фокуса.

0 голосов
/ 19 августа 2010

попробуйте это ::

<TextView
 android:layout_width="wrap_content"
   android:layout_height="wrap_content"
   android:layout_alignParentRight="true"                
   android:singleLine="true"        
   android:ellipsize="marquee"
   android:fadingEdge="horizontal"
   android:marqueeRepeatLimit="marquee_forever"
   android:scrollHorizontally="true"
   android:textColor="#ff4500"
   android:text="Simple application that shows how to use RelativeLayout " 
   android:focusable="true"
   android:focusableInTouchMode="true" android:freezesText="true"></TextView>
0 голосов
/ 20 августа 2010

Ребята, TextView прокручивает свой текст ТОЛЬКО когда он сфокусирован. Как только он потеряет фокус, прокрутка текста прекратится.

0 голосов
/ 19 августа 2010

Я не понимаю вашу проблему.

Я скопировал ваш код и вставил TextView в RelativeLayout с fill_parent для 2 осей, и он отлично работает (разве это не то, что вы хотите?):

alt text

Я тестировал этот код на эмуляторе по умолчанию 2.1 и 2.2.Нет проблем.

Вот мой класс:

public class TextViewMarquee extends Activity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.textview);
        findViewById(R.id.widget28).setSelected(true);
    }
}

И связанный с ним xml:

 <RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >

    <TextView
        android:id="@+id/widget28"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:ellipsize="marquee"
        android:fadingEdge="horizontal"
        android:marqueeRepeatLimit="marquee_forever"
        android:scrollHorizontally="true"
        android:singleLine="true"
        android:text="Simple application that shows how to use RelativeLayout"
        android:textColor="#ff4500" />
</RelativeLayout>

И это на самом деле все, никакой загадочной строки в манифесте или стилеили ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...