首页 文章

键盘出现时没有adjustPan推送列表视图

提问于
浏览
33

我正在尝试使用列表视图和底部的发送消息创建一个活动 . 问题是,当显示键盘时,而不是推动底部内容,只是隐藏它 . 我尝试使用adjustPan,但它会向上推孔视图(因此无法查看列表视图的顶部元素以及de actionbar消失) .

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

有没有人解决这个问题?

谢谢

EDIT:

我将尝试举一个直观的例子:

那么让我们说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项被推高而不再被键盘隐藏 . 问题是它推送列表视图,但它将其推出屏幕,因此actionBar消失,即使尝试向上滚动,我也看不到显示键盘的第1项和第2项 .

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

谢谢

3 回答

  • 53

    好的,我已经为您找到了解决方案,您想要做的事情实际上是每次都将ListView滚动到底部 . 你可以这样做:

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

    如果是 Activity ,请在 onCreate 中执行 . 如果是 Fragment ,请在 onViewCreated 中执行 .

  • 13

    在您的布局XML中:

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

    单线解决方案

    list_view.setTranscriptMode(ListView.TRANSCRIPT_MODE_ALWAYS_SCROLL);
    

相关问题