Android listview 内容布局随着键盘的出现消失,发生改变
2014-12-10 11:29
549 查看
需求:如果消息的时间和上一条消息的时间差不多,就隐藏这条消息的时间。
问题:键盘出现和键盘消失,页面上的消息对应的时间会错乱,发生改变。
原因:是我自己逻辑代码写的有问题,一开始定义了一个全局变量存放上一条消息的时间,这样做就出现了问题,经过测试,发现,键盘出现,listview的高度发生改变,出现滚动条,此时adpater的getView()position顺序是:先0,1,2,3,再3,2,1,0。所以定义全局变量是行不通的,倒序的时候正好反过来了。其实可以简单点,是我复杂化了。直接获取position的数据,和position-1的数据。。这样就无所谓顺序和倒序了。就像绝对和相对的关系。。。
代码:
// 判断时间,如果两条消息的时间相近,则第二条消息的时间隐藏
if (position == 0) { // 默认第0个显示时间,
viewHodler.txt_sendTime.setVisibility(View.VISIBLE);
viewHodler.txt_sendTime.setText(msg.getSendTime());
} else { // 大于0 的,比如3得和2比较,如果时间相同,就隐藏
MessageEntity msg0 = getItem(position - 1);
if (!msg.getSendTime().equals(msg0.getSendTime())) {
viewHodler.txt_sendTime.setVisibility(View.VISIBLE);
viewHodler.txt_sendTime.setText(msg.getSendTime());
} else {
viewHodler.txt_sendTime.setVisibility(View.GONE);
}
}
问题:键盘出现和键盘消失,页面上的消息对应的时间会错乱,发生改变。
原因:是我自己逻辑代码写的有问题,一开始定义了一个全局变量存放上一条消息的时间,这样做就出现了问题,经过测试,发现,键盘出现,listview的高度发生改变,出现滚动条,此时adpater的getView()position顺序是:先0,1,2,3,再3,2,1,0。所以定义全局变量是行不通的,倒序的时候正好反过来了。其实可以简单点,是我复杂化了。直接获取position的数据,和position-1的数据。。这样就无所谓顺序和倒序了。就像绝对和相对的关系。。。
代码:
// 判断时间,如果两条消息的时间相近,则第二条消息的时间隐藏
if (position == 0) { // 默认第0个显示时间,
viewHodler.txt_sendTime.setVisibility(View.VISIBLE);
viewHodler.txt_sendTime.setText(msg.getSendTime());
} else { // 大于0 的,比如3得和2比较,如果时间相同,就隐藏
MessageEntity msg0 = getItem(position - 1);
if (!msg.getSendTime().equals(msg0.getSendTime())) {
viewHodler.txt_sendTime.setVisibility(View.VISIBLE);
viewHodler.txt_sendTime.setText(msg.getSendTime());
} else {
viewHodler.txt_sendTime.setVisibility(View.GONE);
}
}
相关文章推荐
- Android ListView 内容随着键盘弹出而向上推
- Android Xlistview 或者 listview改变控件显示隐藏,chekBox状态发生改变,下拉,上划出现错乱。
- Android ListView 内容随着键盘弹出而向上推
- android 滑动出现删除按钮 - swipelistview 入口方法以及简单布局说明
- Android 软键盘弹出时布局位置改变
- 文本框获取焦点的时候默认值消失,当默认值发生改变时文本框内容为改变后的内容
- 文本框获取焦点的时候默认值消失,当默认值发生改变时文本框内容为改变后的内容
- android 解决输入法键盘遮挡布局内容方法
- Android 学习记录-ListView动态布局内容
- 文本框获取焦点的时候默认值消失,当默认值发生改变时文本框内容为改变后的内容
- 【Android UI】动态改变ListView布局
- 文本框获取焦点的时候默认值消失,当默认值发生改变时文本框内容为改变后的内容
- iOS获取键盘的高度(在键盘出现,改变和消失时通知改变)
- 文本框获取焦点的时候默认值消失,当默认值发生改变时文本框内容为改变后的内容
- android ExpandableListView的group是一个自定义的布局,折叠图标覆盖布局上的部分内容
- 【Android】UI出现前获知组件尺寸,改变布局
- ScrollView 和 ListView 与软键盘弹出导致屏幕尺寸发生改变
- Android开发-UI控件:选项卡切换时改变布局中内容的方法
- 文本框获取焦点的时候默认值消失,当默认值发生改变时文本框内容为改变后的内容
- 文本框获取焦点的时候默认值消失,当默认值发生改变时文本框内容为改变后的内容