Android ListView下方放一个EditText,软键盘弹出问题。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android ListView下方放一个EditText,软键盘弹出问题。相关的知识,希望对你有一定的参考价值。

布局: 父布局是一个RelativeLayout,最上面是一个顶部标题,中间是一个ListView, 最下面是一个包含EditText的LinearLayout。 大概写法就是 标题android:layout_alignParentTop="true" 包含EditText的LinearLayout android:layout_alignParentBottom="true" 中间的ListView android:layout_below="标题" android:layout_above="底部LinearLayout" 这是未点击EditText,软键盘未弹出时的位置 问题: android:windowSoftInputMode="stateHidden|adjustResize" android:windowSoftInputMode="stateHidden|adjustPan" 如果将设置为adjustPan,点击EditText软键盘弹出,会以当前EditText的位置为七点 弹出软键盘,软键盘的上方会平齐EditText的底线,但是因为EditText是包含在 LinearLayout里面,所以会覆盖EditText下方属于LinearLayout的一部分布局。 这是属性设为adjustPan时,点击EditText弹出软键盘的布局,没有跳转到ListView的 底部,直接在原始位置弹出软键盘,顶部知道EditText的光标为止,覆盖了LinearLayout的部分布局 如果将设置为adjustResize,点击EditText软键盘弹出,会定位到ListView的最后一个Item,然后向上撑起布局,没有覆盖布局。 这是属性设为adjustResize时的效果,会跳到ListView的最后一个Item,然后从这里将上方所有布局顶起来,但没有覆盖 不知道大家有没有好的建议和经验来解决这个问题,求教。

参考技术A 找到问题原因了,是因为我的ListView设置了android:transcriptMode="alwaysScroll"属性,去掉就好了。
android:windowSoftInputMode设置为"stateHidden|adjustUnspecified"其实在我这里adjustUnspecified应该等价于ReSize吧
没做实验验证。恩,总之,谢谢大家了。

Android自定义ListView实现侧滑子菜单

惯例,先放效果图,DEMO在最后



想当年博主刚接触Android的时候,看到这个效果心中只有膜拜啊,如果慢慢的自己水平也上来了,就把当年的一个想法给圆满了吧。

好了,废话不多说,先总结总结这个效果:

  • 首先是需要自定义ListView,这点是必须的,然后在ListView的onTouchEvent方法中对事件进行处理
  • 普通的Item的话,是没办法实现这样侧滑的,即使你塞一个HorizontalScrollView进去都不行,所以也必须自定义一个ItemView实现左右侧滑
  • 由于ListView的layout_width不一定是MATCH_PARENT,也可能是定值比如300dp,这个时候我们就需要建立一种机制来保证ItemView的宽度和ListView的宽度匹配,毕竟ItemView包含了两个View,一个是正文的ContentView,一个是菜单的MenuView。
首先我从自定义ListView开始讲起,这个ListView需要完成两件事:事件分发和高度匹配。首先来看高度匹配:

以上是关于Android ListView下方放一个EditText,软键盘弹出问题。的主要内容,如果未能解决你的问题,请参考以下文章

在 Android 中的顶部 ListView 项目上方(以及最后一个项目下方)添加边距

如何在可滚动活动中的 ListView 下方放置一个按钮?

android ——ListView

Android - ArrayAdapter 重复 ListView 项目

Android 对 ListView 的一项使用 NumberFormat

(Android) 如何填充ListView背景并保持标题透明度