Я очень новичок в программировании для Android, и я читал везде, и я не могу найти никакого решения.
Основная проблема заключается в том, что у меня есть TextView в виджете, и я хотел бы, чтобы текст прокручивался, когда текст длиннее, чем TextView layout_width. Это мой код в layout_widget.xml
<TextView android:id="@+id/fact" android:layout_width="200dp"
android:text="Loading... More text to see if it spans or not and want more"
android:singleLine="true"
android:ellipsize="marquee"
android:marqueeRepeatLimit ="marquee_forever"
android:scrollHorizontally="true"
android:focusable="true"
android:focusableInTouchMode="true" />
Теперь я прочитал, что мне нужно сделать так, чтобы TextView был в фокусе, что я и сделал. Я также читал, что вам нужно установить свойство setSelected(true), и именно здесь я изо всех сил пытаюсь установить. В моем действии по умолчанию (в AndroidManifest.xml) у меня есть следующий код.
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.widget_layout);
findViewById(R.id.fact).setSelected(true);
setContentView(R.layout.main);
}
Приведенная ниже часть используется для установки содержимого в widget_layout.xml, а затем для свойства TextView для setSelected устанавливается значение true.
setContentView(R.layout.widget_layout);
findViewById(R.id.fact).setSelected(true);
Затем я возвращаю ContentView обратно в main.xml
Теперь я предполагаю, что это неправильно, и это не так, как это должно быть сделано. Но мне интересно, можно ли это сделать. Я также читал, что если вы можете переопределить Framework, вы можете добавить свои собственные свойства, например ScrollView, это тоже правильно? Также я на SDK версии 7.
Я очень ценю помощь, которую я получаю, спасибо всем!
Изменить: удалив setContentView(R.layout.main); при запуске приложения через отрисовку приложения текст прокручивается, а виджет – нет. Вид приводит меня к тому, что у виджета не может быть бегущей строки??? У кого-нибудь есть бегущая строка, работающая над виджетом??
Edit2: решено. Вот как это делается
В xml для текстового представления вам нужен тег. В основном я думаю, что это то же самое, что и getSeleted(true);
Таким образом, код должен быть следующим:
<TextView android:id="@+id/fact" android:layout_width="200dp"
android:text="Loading... More text to see if it spans or not and want more"
android:singleLine="true"
android:ellipsize="marquee"
android:marqueeRepeatLimit ="marquee_forever"
android:scrollHorizontally="true"
android:focusable="true"
android:focusableInTouchMode="true"
android:duplicateParentState="true">
<requestFocus android:focusable="true" android:focusableInTouchMode="true"
android:duplicateParentState="true" />
</TextView>
requestFocus
должна читаться только<requestFocus />
- person Giszmo   schedule 29.09.2013