Возможно ли для TextView Marquee в виджетах расширить приложение AppWidgetProvider?

Я очень новичок в программировании на 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>

Ответ 1

решаемая. Вот как это делается

В 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>

Ответ 2

введите описание изображения здесь

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

<TextView
    android:id="@+id/textview"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_centerVertical="true"
    android:ellipsize="marquee"
    android:fadingEdge="horizontal"
    android:lines="1"
    android:marqueeRepeatLimit="marquee_forever"
    android:scrollHorizontally="true"
    android:singleLine="true"
    android:text="***************Android Dhina Marquee  effect in textview ***************************** "
    android:textColor="#9bebe4" />

для получения дополнительной справки нажмите здесь http://androiddhina.blogspot.in/2015/10/marquee-effect-in-android-textview.html

Ответ 3

Вы вызываете setContentView дважды:

setContentView(R.layout.widget_layout);
findViewById(R.id.fact).setSelected(true);
setContentView(R.layout.main);

В вашей деятельности может быть только один макет. Если widget_layout - это макет для вашего виджета, который включает в себя текстовое представление, тогда вы не хотите второй setContentView.