安卓系统:列表视图没有随着键盘而移动



我的布局如下:

<LinearLayout>
  <RelativeLayout>
    Some Image and Text as Title
  </RelativeLayout>
  <RelativeLayout>
    <LinearLayout>
      <ListView>
        My message List
      </ListView>
    </LinearLayout>
    <RelativeLayout>
      Edit Box and Send Button
    </RelativeLayout>
  </RelativeLayout>
</LinearLayout>

显示时,我明确地将当前选择设置为列表的最后一项(最新)。

当没有在底部的编辑框中输入文本时,屏幕看起来像这样:

Top Title
  List Item 8
  List Item 7
  ...
  List Item 2
  List Item 1
  Bottom Edit box and Send Button

当我点击编辑框输入我的消息时,屏幕看起来像这样:

Top Title
  List Item 8
  ...
  List Item 5
  Bottom Edit Box and Send Button
  Keyboard

我真正想要的是:

Top Title
  List Item 4
  ...
  List Item 1
  Bottom Edit Box and Send Button
  Keyboard

有人能帮帮我吗?

我在这里找到了答案。

基本上只需使用自定义类扩展ListView,将onSizeChanged()方法重写为setSelection(getCount());

这似乎是最好的解决方案,谷歌语音似乎也使用了同样的策略(因为如果你在聊天列表的顶部,然后旋转屏幕,它会让你回到底部)。

还要记住,在清单中的活动标签中,android:windowSoftInputMode="adjustResize"而不是adjustPan。

你试过这个吗?

您需要在列表中使用setTranscriptMode(ListView.TRANSCRIPT_MODE_NORMAL)setStackFromBottom(true)。希望它能帮助我,它对我有用!

最新更新