Frage

I definierte eine Scrollview mit einem texteedit in meinem Layout:

 <ScrollView android:fillViewport="true"
     android:layout_marginBottom="50dip"
     android:id="@+id/start_scroller"
     android:layout_height="fill_parent"
     android:layout_width="fill_parent"
     android:fadingEdge="none">
 <TextView  
    android:id="@+id/text"
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" >
 </TextView>
 </ScrollView>

I Text hinzufügen, um dieses Scroll mit folgenden Methode:

public void writeToLogView(String textMsg) {
   if (text.getText().equals("")) {
       text.append(textMsg);
   } else {
    text.append("\n" + textMsg);
    scroller.scrollBy(0, 1000000);
   }
}

Wie man sehen kann ich den Text anhängen und versuchen, den Boden des Scroll zu blättern. Leider ist dies nicht richtig funktioniert. Es scrollt nach unten, aber nicht immer und nicht immer nach unten. Irgendwelche Hinweise?

War es hilfreich?

Lösung

oder nach Änderung der Ansichtsgröße in Scrollview Verwendung:

scroller.post(new Runnable() { 
    public void run() { 
        scroller.fullScroll(ScrollView.FOCUS_DOWN); 
    } 
}); 

Andere Tipps

Nach dem Text anhängt, versuchen Sie die Abmessungen mit Ihrer Textview zu berechnen, wo Sie bewegen sollten, statt eine Konstante, wie folgt aus:

scroller.post(new Runnable() {

    public void run() {
        scroller.scrollTo(text.getMeasuredWidth(), text.getMeasuredHeight());
    }
});

Für diejenigen, die verwenden Android Annotations , können Sie es wie folgt tun:

@ViewById
ScrollView myScrollView;

@AfterViews
protected void init() {
    scrollToEnd();
}

@UiThread(delay=200)
void scrollToEnd() {
    myScrollView.fullScroll(ScrollView.FOCUS_DOWN);
}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top