Die Einstellung von TextView beendet das Marquee-Scrollen von anderen TextView

Das wurde an anderer Stelle gefragt, aber die Lösung funktionierte nicht für mich. So poste es wieder mit mehr kontext Das Problem ist, dass eine Aktivität eine Scrolling-Musiktitel-Textansicht enthält, die durch eine aktualisierte verstrichene Zeitzähler-Textansicht gestört wird.

Ich habe diese beiden TextView Widgets in meinem Aktivitätslayout (obwohl sie von anderen Layoutcontainern umgeben sind).

  • Ändern Sie Android Drawable Button Icon Programmatisch
  • Java - Google Play Game Services
  • Wie bekomme ich den aktuellen Standort in Android
  • Anwenden von ColorFilter auf ImageView mit ShapedDrawable
  • Android: Warum setVisibility (View.GONE); Oder setVisibility (View.INVISIBLE); arbeite nicht
  • Android Studio Logcat nichts zu zeigen
  • <TextView android:id="@+id/v_current_time" android:minWidth="26dp" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_vertical" android:gravity="right|center_vertical" android:singleLine="true" android:textSize="12sp" android:enabled="false" /> <TextView android:id="@+id/v_track_title" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textSize="18sp" android:textStyle="normal" android:singleLine="true" android:ellipsize="marquee" android:marqueeRepeatLimit="marquee_forever" android:scrollHorizontally="true" android:focusable="true" android:focusableInTouchMode="true" android:enabled="true" /> 

    Der Musiktitel ist dynamisch auf (im Testfall) eine lange Textzeile gesetzt. Wenn ich den Text niemals für die aktuelle Zeit mit der folgenden Zeile aktualisiere, wird der Musiktitel glücklich blättern, egal wie ich mit meinen Pause- und Spieltasten interagiere.

     tvCurrentTime.setText(DataFormat.formatTime(progress)); 

    Aber wenn ich den Text für die aktuelle Zeit einstellen, hört der Musiktitel auf. Wenn du meine Pause-Taste drückst, kippst du irgendwie zurück zum Gang, aber das Drücken der Wiedergabe wird dazu führen, dass die aktuelle Uhrzeit aktualisiert wird.

    Nach dem Vorschlag in diesem Thread habe ich versucht, die Einstellung des Zeittextes mit der Re-Enabling des Scrolling-Titels wie folgt zu koppeln:

     tvCurrentTime.setText(DataFormat.formatTime(progress)); tvTitle.setEnabled(true); 

    Dies hat keine Auswirkung auf den Ausfall, außer dass der Scroller bei jedem Neustart zurückgesetzt wird.

    Gibt es einige Details, die mir fehlen, oder irgendwelche anderen Gedanken, was falsch gehen könnte? Danke vielmals!

  • Wo finde ich die OBB-Datei zum Testen von Android Expansion Pack Files (OBB) auf meinem Nexus 4?
  • GetExternalStorageDirectory funktioniert nicht
  • Android c2dm Registrierungs-ID-Format
  • FindBugs Android Gradle Keine Klassen konfiguriert Fehler
  • Android.mk-Datei - einschließlich aller Quelldateien in verschiedenen Ordnern und Unterordnern
  • #if in java, wie in c preprocessors
  • 3 Solutions collect form web for “Die Einstellung von TextView beendet das Marquee-Scrollen von anderen TextView”

    Marquee ist problematisch. Wenn TextView (oder das Fenster mit dem TextView) den Fokus verliert, wird das Festzelt gestoppt und zurückgesetzt (siehe Quellen für TextView). Ich vermute, Sie haben hier 3 mögliche Lösungen:

    1. Du kannst android:focusable="false" in allen anderen Ansichten in deinem Layout setzen. Auf diese Weise sollte Ihr TextView nicht den Fokus verlieren. Aber das ist wohl nicht die Lösung, die du willst.
    2. Sie können TextView subclassieren und onFocusChanged() und onWindowFocusChanged() ändern, um zu verhindern, dass das Marquee gestoppt und zurückgesetzt wird.
    3. Erstellen Sie Ihre eigene Umsetzung von Festzelt.

    Es gibt einen anderen Weg, dies zu lösen, ohne alle RelativeLayout zu entfernen.

    Sie können einfach das marquee TextView mit einem LinearLayout innerhalb des RelativeLayout als Container einpacken.

    (Kommentar um eine Antwort zu bestätigen) Stellt sich heraus, dass die TextView XML-Konfigurationen oben funktionieren, ohne irgendwelche Laufzeitänderungen (zum Zurücksetzen von enabled = true oder was auch immer) Wenn ich die RelativeLayout in meiner Layoutdatei losgehe und sie mit LinearLayout ersetzen werde. Und kein Vorschlag 1 oder 2 oben (nicht sicher etwa 3) funktioniert, wenn ich nicht. Das scheint wie ein subtiles und falsches undokumentiertes Versagen von RelativeLayout.

    Das Android ist ein Google Android Fan-Website, Alles ├╝ber Android Phones, Android Wear, Android Dev und Android Spiele Apps und so weiter.