В моем приложении для 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 работает нормально, даже если фокус не на элемент управления, а прокрутка текста не завершено. Мне нужно, чтобы текст прокручивался полностью. Если я добавляю пространство к тексту как до, так и после текста, он работает нормально, но это не очень хорошее программирование. Есть ли хороший способ для этого?
Ребята, TextView прокручивает свой текст ТОЛЬКО когда он сфокусирован. Как только он теряет фокус, прокрутка текста прекращается.
Я не понимаю вашей проблемы.
Я скопировал ваш код и вставил TextView
в RelativeLayout
с fill_parent
для двух осей, и он отлично работает (это не то, что вы хотите?):
Я тестировал этот код на эмуляторах по умолчанию 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>
И на самом деле все, никаких загадочных строк в манифесте или стиле или ...
попробуйте это ::
<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>