个人笔记:bugs(2)

这篇个人笔记列举了Android开发中遇到的各种问题及其解决方法,包括RecyclerView显示异常、滑动监听失效、Fragment数据刷新问题、PopupWindow尺寸设置、数组转换为集合错误等。通过这些问题的解决,强调了编程的细致和学习的重要性。
摘要由CSDN通过智能技术生成

(1)recyclerView只显示一行而且只占屏幕的一半

解决问题的入口:item,因为是item只显示一行,所以先从item开始找问题。
可能的情况

  • 设置item布局的时候,item设置成了mach_parent,导致一条占据了整个屏幕
  • 加载item的时候
  • 布局管理器的原因【这是在网络上看到的方法】

我使用的解决方法
首先检查item布局是否设置了mach_parent,果然是设置了,然后改成wrap_content,运行,发现是多行,但是还是只占屏幕的一半,于是看加载布局的时候
平常加载item布局,我通常使用View view = View.inflate(mContext, R.layout.item_footer_addmore, null);这种加载方式,这样运行出来的item只有一行,进入inflate里面查看,它是View view = LayoutInflater.from(mContext).inflate(R.layout.item_text, parent, false);这种方式的封装,第三个布尔参数默认传了true。

补充:后面两个参数的解释,引用郭霖大神的解释

  1. 如果root为null,attachToRoot将失去作用,设置任何值都没有意义。
  2. 如果root不为null,attachToRoot设为true,则会给加载的布局文件的指定一个父布局,即root。
  3. 如果root不为null,attachToRoot设为false,则会将布局文件最外层的所有layout属性进行设置,当该view被添加到父view当中时,这些layout属性会自动生效。
  4. 在不设置attachToRoot参数的情况下,如果root不为null,attachToRoot参数默认为true。

最后我改成:View view = LayoutInflater.from(mContext).inflate(R.layout.item_footview_text, parent, false);就能正常显示了,给该布局的外部再嵌套一层父布局(parent),设置为false。

这里还有一个原因是我自己粗心造成的,在这里记下,项目中使用gson解析,我把整个接口返回的数据放到一个实体类中,实体类里面是一些message,result,start,end以及最重要的List,接着我就鬼使神差的实例化了一个集合,直接把整个实体类放进去了,把这个集合直接添加到适配器,在浏览器上看到返回的集合里面明明有多条,可是运行总是一条,想到这,我都想给自己一巴掌,为什么只有一条,因为返回的就是一个实体,当然只有一条,应该把实体里面返回的集合放到新实例化的集合中,然后添加到适配器,而不是直接把实体类存入新集合。。。超低级,印象深刻,以后不能再犯。。。

总结:编程是门细致活,所以发挥女性的优势,一定要细心~

(2)recyclerview 设置滑动监听无响应

原因:嵌套了scrollview,要对scrollview进行设置监听。

引发的新问题:scrollview只有onTouchListener没有onScrollviewListener,这样导致,服务器没数据的时候,如果我做了一个滑动的操作,触发了onTouch加载不到新数据就会crash,这个和我的实现方式有关,这里简单记下,加载时在有数据的时候才实例化的适配

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值