2016-03-23 8 views
2

Ich versuche, meine Textansicht von links nach rechts auf eine unendliche Weise laufen zu lassen. Aber irgendwie sieht es wirklich komisch aus Ich kann es sogar nicht in Worten erklären, also habe ich beschlossen, es aufzunehmen und hochzuladen. HierRunning TextView Fehler/Bug (Einzeilige Laufschrift)

ist das Video: https://www.youtube.com/watch?v=gj3FF7fEutk&feature=youtu.be

Also das ist, wie ich meine Textview schrieb:

<TextView 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 

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

      android:textAppearance="?android:attr/textAppearanceMedium" 
      android:text="Title" 
      android:layout_marginTop="20dp" 
      android:textColor="@color/white" 
      android:id="@+id/textView_title_full" 
      android:layout_centerHorizontal="true" /> 

Und das Textview ist in einem RelativeLayout wie folgt erklärt:

<RelativeLayout 
      android:layout_width="wrap_content" 
      android:layout_height="170dp" 
      android:id="@+id/BELOW_FULL" 
      android:layout_gravity="bottom" 
      android:background="@drawable/color_below_player_full" 
      android:layout_below="@+id/viewpager_albumart_full" 
      android:layout_alignParentBottom="true"> 

wo die RelativeLayout ist auch in einem Relatiolayout wie folgt:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:orientation="vertical" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" 
android:weightSum="1" 
android:background="#0E0E0E"> 

Ich habe natürlich die txt_song_title.setSelected(true); Methode verwendet.

Wie sieht es aus wie das, was ich erreichen möchte: https://www.youtube.com/watch?v=o4uAA4pik68

Sie danken allen sehr viel!

EDIT:

Alle Teile, wo ich etw mit meinem Textview tun:

public void init_textviews() 
{ 
     ... 
     txt_song_title = (TextView)findViewById(R.id.textView_title_full); 
     txt_song_title.setSelected(true); 
} 

// init_textviews() in meinem onCreate Methode aufgerufen wird

txt_song_title.setText("Some Long text"); // called in onCreate after init_textviews() 

Und schließlich:

public static void update_GUI_full (Context context) //Called when it is a button is clicked 
{ 
    ... 
    txt_song_title.setText("longTexthere"); 
    ... 
} 
+0

Können Sie den Code wo Sie tun 'txt_song_title.setText()'? – antonio

+0

Ich habe es schon versucht, wenn ich einen langen Text in xml mit "android: text =" Langer Text hier "" gesetzt habe. So kann es eigentlich nicht die Methode sein, wo ich sie verwende –

+0

Ich kopierte einfach die XML-Datei 1to1 in ein neues Projekt und es funktioniert gut:/Und wenn es hilft Ihnen Im tun die setText-Methode in meinem onCreate Abschnitt –

Antwort

2

Seite an Seite mit @Ahmet Kazaman arbeiten wir haben festgestellt, dass es ein Problem bei der Kombination einer Marquee TextView mit einer anderen TextView in regelmäßigen Abständen aktualisiert unter Verwendung einer Handler schien.

Nach einigen Tests fanden wir haben, dass dieses seltsame Verhalten tritt nur auf, wenn die TextView s iside ein RelativeLayout und alles woeks wie erwartet, wenn das einschließende Layout ein LinearLayout ist sind. Daher besteht die Lösung (mehr eine Problemumgehung) darin, das umschließende Layout zu einem Linearlayout zu ändern.