android -------- 解决RecyclerView显示不全只显示一条item的问题

布局文件1

<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/sv_home_hm"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:scrollbars="none">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical">

        <androidx.recyclerview.widget.RecyclerView
            android:id="@+id/recycler_home_model_type"
            android:layout_width="match_parent"
            android:layout_height="65dp"
            android:layout_marginTop="16dp"></androidx.recyclerview.widget.RecyclerView>

        <androidx.recyclerview.widget.RecyclerView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="16dp"></androidx.recyclerview.widget.RecyclerView>

    </LinearLayout>

</ScrollView>

如图,公司项目有一个界面要用到2个RecyclerView来实现,由上至下垂直排列;

我的布局是自定义ScrollerView套LinearLayout套的RecyclerView;

调试接口的时候,发现第三个RecyclerView的展示有问题,就是我们说的显示不全;

接口明明返回很多数据的,我尝试过很多方法都不行,没有达到想要的结果;

后来我的解决方案是把RecyclerView外层嵌套的线性布局(LinearLayout)换成相对布局(RelativeLayout),就好了,如下:

这是垂直冲突的原因

<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/sv_home_hm"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:scrollbars="none">
    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content">

            <androidx.recyclerview.widget.RecyclerView
                android:id="@+id/recycler_home_model_type"
                android:layout_width="match_parent"
                android:layout_height="65dp"
                android:layout_marginTop="16dp"></androidx.recyclerview.widget.RecyclerView>

            <androidx.recyclerview.widget.RecyclerView
                android:id="@+id/recycler_home_model_recommend"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginLeft="5dp"
                android:layout_marginRight="5dp"></androidx.recyclerview.widget.RecyclerView>
    </RelativeLayout>
</ScrollView>

原文地址:https://www.cnblogs.com/zhangqie/p/11322020.html

时间: 2024-10-24 22:53:37

android -------- 解决RecyclerView显示不全只显示一条item的问题的相关文章

Android 嵌套GridView,ListView只显示一行的解决办法

重写ListView.GridView即可: public class MyListView extends ListView { public MyListView(Context context) { // TODO Auto-generated method stub super(context); } public MyListView(Context context, AttributeSet attrs) { // TODO Auto-generated method stub su

Android中ScrollView嵌套ListView只显示一行的解决方案

Android中ScrollView嵌套ListView只显示一行的解决方案 解决方案1: 直接把包含ListView控件的ScrollView控件从布局文件中去除,留下ListView控件,这是最简单快捷的解决办法. 如果一定要在ScrollView中包含ListView,则参考 解决方案2: public void showlist() { List<HashMap<String, String>> dataHashMaps = new ArrayList<HashMap

Android 自定义Adapter 但listview 只显示第一条数据

楼主让这个问题郁闷了一晚上.....在logcat里明明显示adapter的getview方法里的list大于一条数据 ,但posotion却一直是0.....运行后也只显示list[0]里面的数据....最后的最后原来错误出在布局文件上 我以前的是这样的; <ScrollView android:layout_width="fill_parent" android:layout_height="wrap_content" > <!-- listv

一键解决ScrollView嵌套ListView只显示一行的问题

/** * 解决ScrollView嵌套ListView只显示一行的问题 * * @param listView */ private void setListViewHeightBasedOnChildren(ListView listView) { ListAdapter listAdapter = listView.getAdapter(); if (listAdapter == null) { return; } int totalHeight = 0; for (int i = 0;

IOS SDK百度地图不能正常显示,只显示网格

在使用百度地图开发的时候出现的问题,问题为: IOS SDK百度地图不能正常显示,只显示网格 如图所示 在这里出现的问题纠结了很久,最后发现在API控制台创建应用的时候需要输入安全码 之后知道此安全码即为工程中的Bundle Identifier 所以我们填写的时候需要将工程中的info.plist文件设置Bundle Identifier和安全码一样即可 此外还有部分需要注意的地方 注意: 1. 为了给用户提供更优质的服务,iOS SDK自v2.0.2版本开始采用了全新的Key验证体系.因此,

android:singleLine=&quot;true&quot;,[...]没有全部显示,只显示一个点[.]

现象描述: android:singleLine="true"时,text超出部分显示[.],没有显示省略号[...]. 如果想要一行显示文本,超出部分用省略号代替.一般会使用android:singleLine="true".这种解决办法大部分情况是对的,但是某些情况下会出问题.比如,以下情况: Button设置android:singleLine="true",text是英文的情况下,text超出部分显示[.],不显示省略号[...]. 上述

word 嵌入式图片不能显示,只显示一行。

在word中插入图片"嵌入式"时,有时候会遇到图片只显示一部分. 只显示了一行,这是由于行间距的事儿,将行间距调整为单行,就可以解决问题了.

Android ScrollView中嵌套ListView只显示一行的解决办法

Android编程中,ScrollView嵌套ListView时,会无法正确的计算ListView的大小.解决的办法如下: (非原创,网上搜到的解决方法) public class MainActivity extends Activity { private ListView listView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); s

android Logcat怎么让它只显示我自己的应用程序信息

手机用来测试一些练习效果,利用LogCat查看日志信息的时候屏幕刷个不停,想找到想要查看的信息很麻烦,这里学着设置一个过滤器. 不多解释,请看图,填写你的应用包名: