Listview,滚动到底部,使用EditText View查看奇怪的行为

时间:2016-04-06 17:05:07

标签: java android listview android-edittext

我尝试将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);
     }
};

1 个答案:

答案 0 :(得分:1)

由于我们在评论中尝试了所有内容,至少我们发现在将项目添加到列表视图后以及切换listview-footer-child的可见性之后应该调用notifyDatasetChanged()