Bug日志(一):RecyclerView只显示第一行

简介: Bug日志(一):RecyclerView只显示第一行

最近在做新App开发时,使用RecycleView控件Gridlayout分三列展示信息,却遇到了只显示一行数据的Bug,


代码如下:


mBinding.recyclerViewLabel.setLayoutManager(new GridLayoutManager(getActivity,3));

列表子项item.xml


<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    <TextView
        android:id="@+id/tv_lovetalk_label"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="@drawable/back_label_cornor"
        android:layout_gravity="center_horizontal"
        android:text="@string/lovetalk"
        android:textSize="@dimen/font_12"
        android:layout_marginLeft="@dimen/spacing_30"
        android:layout_marginTop="@dimen/spacing"
        android:paddingTop="5dp"
        android:paddingBottom="5dp"
        android:paddingStart="@dimen/spacing"
        android:paddingEnd="@dimen/spacing"
        />
</LinearLayout>
recycleView.xml
   <androidx.recyclerview.widget.RecyclerView
                   android:id="@+id/recyclerView_label"
                   android:layout_width="match_parent"
                   android:layout_height="140dp"
                   android:layout_below="@id/tv_hot_label"
                   android:layout_marginTop="23dp"
                   android:overScrollMode="never"
                   tools:listitem="@layout/lovetalk_label_item_layout" />

Bug展示:

e5e38639d6783dec21cbdaeb343b66f.png



522164ee73cbc1c79b8f6549e46cb7d.png



既然是单行显示,是不是子项把父控件的高度占满了,于是去检查item.xml文件,看到textView高度是wrap_content,就很纳闷儿,既然不是match_parent为啥只能显示一行,发现,还是自己疏忽大意,既然是列表子项,那么他整个最外层的布局文件的高度都不能match_parent,于是发现在最外层的LinerLayout的 android:layout_height="match_parent",大意了啊,执着于TextView控件,却疏忽了其父容器的宽高。


解决方法就出来啦!


一、检查列表子项布局文件的属性,是不是写错了


二、若布局文件找不出来是哪儿的问题,则可以从把item装入RecycleView这个过程中入手!


更改位置:列表的adapter文件。


原理:直接在装入item的时候无视父容器的逻辑,重写onCreateViewHolder()方法


@Override
public BaseViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
    LayoutInflater layoutInflater = LayoutInflater.from(parent.getContext());
    //重点在inflate里的参数,本来第二个参数是parent,这儿改为null,则父容器的属性对他本身就无效
    View convertView = layoutInflater.inflate(R.layout.lovetalk_label_item_layout, null, false); 
    return new BaseViewHolder(convertView);
}

第二个方法百度找到的,试了下也可以哦!


相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
|
5月前
|
安全 Java Apache
修复了log4j 的bug
修复了log4j 的bug
41 0
|
3月前
|
算法 测试技术 C++
【数据结构】模式匹配之KMP算法与Bug日志—C/C++实现
【数据结构】模式匹配之KMP算法与Bug日志—C/C++实现
40 0
|
5月前
|
人工智能 网络安全 Python
一篇普通的bug日志——bug的尽头是next吗?
[bug 1] TypeError: ‘method’ object is not subscriptable 问题代码:
51 0
一篇普通的bug日志——bug的尽头是next吗?
|
11月前
|
存储 缓存 API
好家伙!查看系统日志时我捕获了一只发生概率小于万分之一的Bug
在开始这篇文章之前想先说一句:如果一套系统暂时没问题,那只是因为它的并发量不够而已。 上周在查看系统日志时,发现了一条与众不同的日志。日志中有一半内容是正常的报文数据,而另一半内容是0x00这样的空数据
|
12月前
|
Android开发
Bug日志(四)——Android 防止多次点击(另解决多个列表子项点击)
在用户使用 应用的时候,经常会出现点击过快且多次点击同一控件的情况, 一方面这是因为应用或手机当前有些卡顿,网络卡啥的 另一方面也可能是由于很多应用并没有设置按钮点击时的 selector 或者其它按钮响应方式(例如点击按钮时按钮放大,常见于游戏),导致用户误认为没有点击到当前按钮。(比如使用selector再点击后更换背景颜色,图片等等)
|
12月前
|
XML Android开发 数据格式
Bug日志(二)-Android网路请求图片地址图片不显示
Bug日志(二)-Android网路请求图片地址图片不显示
|
12月前
|
存储 API 开发工具
Bug日志(三)-获取本地图片后上传失败
原来为了能给用户提供对文件的更多控制并限制文件混乱,Android Q改变了应用程序访问设备外部存储上文件的方式,例如存储在路径/ sdcard中的文件。Android Q继续使用READ_EXTERNAL_STORAGE和WRITE_EXTERNAL_STORAGE权限,这些权限对应于存储面向用户的运行时权限。但是,默认情况下targetSdkVersion设置为Android Q的应用(以及manifest清单开启属性来启动这个变更的应用)会获得一个沙盒视图到外部存储。此类应用程序只能看到其特定于应用程序的目录和特定媒体类型,因此应用程序不需要请求任何其他用户权限。
|
监控 小程序 JavaScript
别再乱打日志了,这样才是定位 bug 打日志的方式!
别再乱打日志了,这样才是定位 bug 打日志的方式!
|
存储 监控 小程序
别再乱打日志了,这样才是定位 bug 打日志的方式!
日常工作中,程序员需要经常处理线上的各种大小故障,如果业务代码没打印日志或者日志打印的不好,会极大的加大了定位问题的难度,使得解决bug的时间变长了。 对于那种影响比较大的bug,处理时间是分秒必争的,慢几秒处理完,可能GMV就哗啦啦的
|
5天前
|
C++
JNI Log 日志输出
JNI Log 日志输出
14 1