我的布局如下:
<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
有人能帮助我吗?
答案 0 :(得分:11)
我找到了答案here。
基本上只是使用自定义类扩展ListView,将onSizeChanged()方法覆盖为setSelection(getCount());
这似乎是最好的解决方案,看起来谷歌语音使用相同的策略(因为如果你在聊天列表的顶部,然后旋转屏幕,它会让你回到底部)。
还要记住,你的活动标签中的android:windowSoftInputMode =“adjustResize”代替adjustPan。
答案 1 :(得分:2)
您是否尝试过this?
您需要在列表中使用setTranscriptMode(ListView.TRANSCRIPT_MODE_NORMAL)
和setStackFromBottom(true)
。希望它有所帮助,它对我有用!