我尝试将listview滚动到最底部并以这种方式工作:
listview.setSelection(listview.getCount()-1);
(遗憾的是谷歌,基本的事情scrollToBottom方法,我们必须找到其他方法来实现它..)
但是这不起作用..在使用它之前,你在EditText View中键入一些文本..滑稽?完全没有。
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!
我们可以看到问题很奇怪而且很奇怪,我试图[anyView].performClick();
但没有运气..
任何想法为什么输入EditText让我想到负责列表视图的Android开发团队是如此蹩脚?我们如何找到这个bug的解决方法。
感谢您的帮助! :)
一些代码:
<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"/>
和java
scrollToBottomRunnable = new Runnable() {
@Override
public void run() {
log.setSelection(log.getCount() -1);
}
};
答案 0 :(得分:1)
由于我们在评论中尝试了所有内容,至少我们发现在将项目添加到列表视图后以及切换listview-footer-child的可见性之后应该调用notifyDatasetChanged()
。