软键盘遮挡ListView后无法显示最后一条数据

38

android 键盘影响listview 布局

    在listview展现数据时,键盘弹出与销毁后会影响listview的布局,无法显示最后一条数据,本人经过大量测试, 给ListView设置过weight,或者在listView外面再次嵌套一层ScrowView均无法实现类似微信点击输入框后ListView上移的效果,最后发现需要在androidmanifest.xml增加如下控制即可:

  <activity android:name=".Activity"

android:windowSoftInputMode="adjustPan"  />


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
为了让 ListView 加载一部分数据,我们可以在 Adapter 中对数据进行分页处理,只加载部分数据。具体实现可以参考以下步骤: 1. 在 Adapter 中定义一个变量用于记录当前已加载的数据量,初始值为每页的数据量。 ```java private int loadedItemCount = PAGE_SIZE; ``` 2. 在 getView() 方法中,根据当前位置和已加载的数据量判断是否需要加载更多数据。 ```java @Override public View getView(int position, View convertView, ViewGroup parent) { // 判断是否需要加载更多数据 if (position >= getCount() - loadedItemCount) { // 加载更多数据 loadMoreData(); } // 其他代码 } ``` 3. 在 loadMoreData() 方法中加载更多数据,并更新 loadedItemCount 变量。 ```java private void loadMoreData() { // 加载更多数据 // 更新 loadedItemCount 变量 loadedItemCount += PAGE_SIZE; // 通知 ListView 数据已更新 notifyDataSetChanged(); } ``` 4. 在 Activity 或 Fragment 中监听 ListView 的滑动事件,当滑动到底部时触发加载更多数据的方法。 ```java listView.setOnScrollListener(new AbsListView.OnScrollListener() { @Override public void onScrollStateChanged(AbsListView view, int scrollState) { // 滑动状态改变时触发 } @Override public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) { // 滑动时触发 if (firstVisibleItem + visibleItemCount >= totalItemCount) { // 到达底部,加载更多数据 loadMoreData(); } } }); ``` 通过以上步骤,我们可以实现 ListView 的分页加载功能。当用户滑动到底部时,会自动触发加载更多数据的方法,从而实现上拉加载更多数据的效果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值