2016-04-06 9 views
1

Ich versuche Listenansicht bis auf den Grund zu blättern und es funktioniert auf diese Weise:Listview, blättern nach unten, seltsame Verhalten mit EditText anzeigen

listview.setSelection(listview.getCount()-1); 

(Schande über Sie Google, grundlegende Sache scrollToBottom Methode, und wir hatten um andere Wege zu finden, um es zu erreichen ..)

Aber das funktioniert nicht .. wenn Sie es vor der Verwendung eingeben Sie einen Text .. in EditText View. Komisch? Ganz und gar nicht.

Add element to listview -> scrollToBottom -> you are at the very bottom - works 
Add element to listview -> type something in EditView -> scrollToBottom - not works 
Add element to listview -> type something in EditView -> click anywhere in screen -> scrollToBottom - works! 

Wie wir Problem ist seltsam und komisch sehen, war ich zu [anyView].performClick(); versucht, aber kein Glück ..

Jede Idee, warum in EditText eingeben mich über Android Dev Team verantwortlich für die Listenansicht zu denken macht, ist so lahm ? Und wie können wir Abhilfe für diesen Fehler finden.

Vielen Dank für Ihre Hilfe! :)

Einige Code:

<ListView 
    android:id="@+id/nativeLog" 
    android:focusable="false" 
    android:focusableInTouchMode="false" 
    android:transcriptMode="normal" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:paddingTop="0dp" 
    android:paddingBottom="10dp" 
    android:clipToPadding="false" 
    android:paddingLeft="0dp" 
    android:paddingRight="0dp" 
    android:cacheColorHint="#00000000" 
    android:background="@drawable/gray_bg" 
    android:listSelector="@color/transparent" 
    android:divider="@null" 
    android:dividerHeight="0dp"/> 

[...] 

<EditText 
    android:id="@+id/boxInterfaceEditbox" 
    android:scrollHorizontally="false" 
    android:inputType="textCapSentences|textLongMessage|textMultiLine|textNoSuggestions" 
    android:singleLine="false" 
    android:imeOptions="actionSend" 
    android:layout_width ="0dp" 
    android:layout_weight="1" 
    android:layout_height ="wrap_content" 
    android:layout_marginLeft="5.5dp" 
    android:layout_marginRight="5.5dp" 
    android:paddingTop="8.2dp" 
    android:paddingBottom="8.2dp" 
    android:paddingLeft="8dp" 
    android:paddingRight="8dp" 
    android:minHeight="@dimen/nav_interface_btn_size" 
    android:maxHeight="90dp" 
    android:textColor="#bbb" 
    android:textSize="15.25dp" 
    android:gravity="top" 
    android:background="@drawable/nav_boxtextarea"/> 

und Java

scrollToBottomRunnable = new Runnable() { 
    @Override 
    public void run() { 
     log.setSelection(log.getCount() -1); 
    } 
}; 
+0

@ElSajko Hier finden Sie: http://coderzpassion.com/android-custom-listview-with-edittext/ Sie könnten Hilfe bekommen –

+0

@JagjitSingh: EditView ist nicht als Element der Listenansicht in meinem Fall, aber ich werde Schau mal. Danke. – ElSajko

+1

Ich denke, dass Ihre Text bearbeiten wird Fokus und dann Ihre Schaltfläche kann nicht den Fokus auf klicken, so dass Sie zuerst Bildschirm berühren, um den Fokus von bearbeiten Text –

Antwort

1

Wie wir alles in den Kommentaren versucht, zumindest haben wir festgestellt, dass rufen sollte notifyDatasetChanged() nach Hinzufügen von Elementen zur Listenansicht und nach, wenn Sie wechseln Sichtbarkeit von ListView-Footer-Kind auch.

+0

Nach dem Hinzufügen von Elementen und nach, wenn Sie die Sichtbarkeit von ListView-Footer-Kind auch wechseln. – ElSajko