键盘出现时不推送adjustPan推送Listview

我正在尝试使用listview和发送消息在底部创建一个活动。 问题是,当显示键盘时,而不是推入底部内容,只是隐藏它。 我尝试过使用adjustPan,但是它将孔视图向上推(所以没有办法看到listview的顶层元素,并且de actionbar消失)。

如果您看一下WhatsApp或Line,其功能是当屏幕底部显示列表的最后一项时,键盘会向上推动列表视图(不会将操作栏或第一个元素放在屏幕外),并且当列表的最后一项没有显示时(在一些向上滚动之后),键盘被隐藏在底部列表中(正常的adjustResize)。

任何人处理这个问题?

谢谢

编辑:

我会试着举一个视觉例子:

所以,让我们说这个ListView:

---item 1---  
---item 2---  
---item 3---  
---item 4---  
---EditText---

editText不是ListView的一部分,而是在底部对齐的LinearLayout。 当显示键盘时,ListView变成这样(项目3和4被键盘隐藏):

---item 1---  
---item 2---  
---EditText---
---Keyboard---  

我想得到的是:

---item 3---  
---item 4---  
---EditText---
---Keyboard---  

我已经尝试了android:windowSoftInputMode =“adjustPan”。结果是有效地将项目3和4推上去,而不是被键盘隐藏起来。 问题是它推动了listview,但它将它推出屏幕,所以actionBar消失了,即使试图向上滚动,我也看不到显示键盘的Item 1和2。

希望我解释自己,不是很容易..

谢谢


好吧,我为你找到了一个解决方案,你想要做的就是让ListView每次滚动到底部。 你可以这样做:

ListView l = getListView();
l.setTranscriptMode(ListView.TRANSCRIPT_MODE_NORMAL);
l.setStackFromBottom(true);

如果它是一个Activity ,请在onCreate 。 如果它是Fragment ,请在onViewCreated


在你的布局XML中:

android:stackFromBottom="true"
android:transcriptMode="normal"

单线解决方案

list_view.setTranscriptMode(ListView.TRANSCRIPT_MODE_ALWAYS_SCROLL);
链接地址: http://www.djcxy.com/p/24231.html

上一篇: Push Listview when keyboard appears without adjustPan

下一篇: EditText in a listview?