listview嵌套listview,子listview中有换行的textview展示有问题,肿么办?

ListView嵌套ListView,TextView有多行文本显示不全不问题 这是在网上找到的相关的解决方法,记录下来,方便以后查看。 关于ListView嵌套ListView,在网上找到的解决方法是调用自定义的方法动态计算listview的高度: public void setListViewHeightBasedOnChildren(ListView listView) { ListAdapter listAdapter = listVie 阅读详情
        这些天遇到一个问题,就是我有个界面因为业务的需要,就必须做成listview嵌套listview,然后被嵌套的listview的Item里面有textview,刚开始也没什么,后来突然有条数据的字符串特别长,然后子listview的Item的textview就换行了,然后,然后你们懂得,子listview就显示异常了呀,内容就不能完全展示了。

        其实google也是不推荐可以滚动的控件里面再次嵌套可以滚动的控件的。可是,无奈产品的需求呀。不过,已经有大神解决了这种嵌套问题,一般是有两种解决方法,一是重写listview的onMeasure方法,另外一种是设置完listview的adapter,动态测量listview的高度,当然这种情况是要求listview的子条目最外层布局是linearlayout线性布局了。其实说这个也是为这个textview换行问题做铺垫了。我嵌套listview时候用的是 第一种方法就是自定义了listview。但是依然出现了这个问题,好的,那咱们换换第二种方式呢?结果依然悲剧,依然是有问题。然后就去看看网上大牛都是怎么解决的。其实,看了下最主要的就是有两种解决方式,一种是用重写onMeasure的listview的方式,但是我试了不好使。另外一种就是重写textview的onMeasure,就是去除padding以及drawablePadding后,算出每行的宽度,然后用measureText方法测试赋值给textview的字符串在屏幕上占据的总长度,然后两者相除得到行数,然后在用textview每行的高度*行数得到textview应有的宽高,看起来也的确是合情合理呀。可是我试了还是不好使的。哎,日子可该怎么过呀。

         既然试了都不好用。然后我就想用listview肯定是不行了。看来列表类的都不好用了。然后,然后我就用了linearlayout了。这也是万般无奈的做法,实属下下策。但是也的确是可以解决问题。算是一种临时性的解决方案吧。大家都知道线性布局,当它的orientation设置为vertical,然后它的子布局都一样,看起来会怎样?是不是也可以看做一个列表,虽然它不是。

        接下来看具体实施,因为我之前用的就是listview嵌套listview,所以如上面所说我将子listview换成了一个orientation为vertical的linearlayout了。原来的listview的adapter其实是可以复用的。它就是用来构造添加进linearlayout里面的子view的。看如下代码:

private void addView(){
        /**
         * 下面的ExampleBean是实体Bean,同样listTemp是给adapter的list集合了(我写的假数据)
         */
        List<ExampleBean> listTemp = new ArrayList<>();
        ExampleAdapter exampleAdapter = new ExampleAdapter(listTemp,context);
        //通过循环向linearlayout里面添加子view,相当于listview的Item了
        for(int i=0;i<exampleAdapter.getCount();i++){
            //通过adapter的getview方法获取子view
            View view = exampleAdapter.getView(i, null, null);
            //给子view设置margin属性(当然也可以有别的属性了)
            LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,ViewGroup.LayoutParams.MATCH_PARENT);
            layoutParams.setMargins(0, DevUtils.dp2px(10),0,0);
            view.setLayoutParams(layoutParams);
            //给linearlayout的Item设置点击事件,模拟listview的onItemClickListener
            view.setOnClickListener(new MyOnClickListener(exampleAdapter.get(i),i));
            linearlayout.addView(view);
        }
    }

/**
     * 要给linearlayout添加的点击事件监听
     */
    private class MyOnClickListener implements View.OnClickListener{
        private ExampleBean exampleBean;
        private int currentPosition;
        //通过构造方法将需要的参数传递进来(可根据自己业务需要扩展)
        public MyOnClickListener(ExampleBean exampleBean,int position){
            this.exampleBean = exampleBean;
            this.position = position;
        }

        @Override
        public void onClick(View v) {
            //在这里写自己的业务跳转逻辑就好了
        }
    }
       是的,核心的代码就是如上的两个方法了。下面的MyOnClickListener就是给线性布局的每个Item添加的点击事件。这个也是我目前最可能遇到的业务场景了,就是Item的点击事件。如果是Item内部的事件,我们不需要做额外的处理了,交给adapter就好了。
       以上就是这次遇到问题的解决过程。当然这个只是一个临时性的解决方法,因为listview这个列表控件的Item的复用性肯定比linearlayout好很多。如果大家有什么好的点子,欢迎分享,多多指教。如果不对之处,欢迎指出。周末愉快。
Android TextView深度解析:从基础设置到高级适配与性能优化 在Android应用开发中,UI组件的正确使用是构建良好用户体验的基础。TextView作为最核心的文本显示控件,其内容、字体大小、颜色和背景的设置看似简单,实则涉及移动端开发的多个关键技术领域。理解其工作原理,需要掌握Android资源系统、屏幕适配机制和渲染性能优化等核心概念。通过资源化管理和主题化设计,开发者可以实现文本的国际化支持、深色主题适配以及动态样式切换,这对提升应用的可维护性和用户体验至关重要。在实际工程实践中,合理运用**sp与dp单位**进行字体适配,以及通过**ColorStateLi 阅读详情

相关推荐

listView实现文字编辑的自动换行

listView实现文字编辑的自动换行.

android listView实现文字编辑自动换行

程序很简单,编辑文字的时候设置每行的字数,超出字数之后自动换行,点击删除按钮可以退回到上一行。实现效果界面如下所示: 主要在WordTempletAdapter类里实现该功能,代码如下: public class WordTempletAdapter extends BaseAdapter{ private Activity mActivity; private int []wordI

guokehello的专栏 3253

混合编程实战:C#集成C++ PCL点云处理库,打造跨语言动态链接库

本文详细介绍了C#与C++混合编程实战,重点讲解如何通过动态链接库(DLL)集成C++ PCL点云处理库,实现跨语言协作。内容涵盖环境配置、PCL功能封装、C#调用DLL的完整方案,以及性能优化和错误处理等进阶技巧,帮助开发者高效处理大规模点云数据,提升工业软件开发效率。

weixin_42620913的博客 381

自定义TextView,解决文字换行,\n换行符换行,导致高度计算不对问题(计算ListView高度)

刚遇到一个问题,如题,我有2个ListView嵌套,所以需要计算嵌套中的ListView高度,然后就发现,TextView 中的文字换行会导致高度计算有误,只算到一行,So,上网查解决方法,找到的方法都是一个public class myTextView extends TextView { private Context context; public myTextView(Contex

z609933542的博客 4090

图解5G HARQ-ACK反馈:从DCI解析到PUCCH发送的完整数据流

本文详细解析了5G通信系统中HARQ-ACK反馈机制的完整流程,从DCI解码到PUCCH发送的实战指南。重点介绍了HARQ-ACK码本生成、DCI关键参数解读以及PUCCH资源映射等核心技术环节,帮助工程师深入理解5G NR中的数据传输可靠性保障机制。

weixin_27722377的博客 396

避坑指南:ROS2 Humble摄像头标定常见错误排查(从‘CALIBRATE’按钮不变绿到保存文件找不到)

本文详细解析了ROS2 Humble环境下摄像头标定的常见问题及解决方案,从CALIBRATE按钮不变绿到标定文件保存失败等疑难杂症。提供硬件准备、参数设置、实时诊断到结果验证的全流程指导,特别针对Ubuntu2204系统和usb_cam驱动的兼容性问题给出实用建议,帮助开发者高效完成内参标定。

weixin_29193359的博客 398

Android 仿搜索历史记录,根据item内容自动换行,涉及动态添加布局

数据排列RecyclerView可以解决大部分问题,有一种情况:比如:商城的搜索历史记录,因为输入字符的长短不同,RecyclerView处理列数的时候,比较麻烦,如图: 解决方案:自定义View: /** * Created by Administrator on 2018/6/20. * 自动换行 */ public class WarpLinearLayout extend...

zuo_er_lyf的博客 3108

uniapp中renderjs实战:手把手教你实现SSE即时通讯(附完整代码)

本文通过一个完整的实战案例,详细讲解了如何在uni-app中使用RenderJS实现SSE即时通讯功能。文章剖析了RenderJS作为Vue视图层强力补充的原理,并提供了包含自动重连、状态管理等健壮性设计的完整代码,帮助开发者突破框架限制,高效集成浏览器原生API。

weixin_29005499的博客 189

ListView嵌套ListView实现论坛评论效果

开发过程中,根据需求需要做一个类似于百度贴吧APP中,论坛评论回复的效果。这个问题其实挺愁人的,它牵扯到如何是多级嵌套的listview都能正常显示。中间牵扯到的问题是: (1)、点击评论按钮,如何弹出软键盘评论框 (2)、ListView如何嵌套ListView显示 (3)、显示不开的TextView如何换到顶行显示,而不是简单的换行显示。 话不多说,先上图:

DoForMe_2014的专栏 2014

KLayout教程(二)编辑不同的形状

首先画一个基础的矩形,然后双击他可以定义他的坐标

集成光电子 1万+

Trae IDE项目开发全流程深度技巧与最佳实践

2026年AI开发新范式:Trae AI IDE深度解析 摘要 2026年,AI已成为软件开发的核心驱动力。字节跳动推出的AI原生IDE——Trae,从根本上重塑了开发体验,将AI作为第一公民而非附加功能。Trae通过深度集成大型语言模型和创新交互模式,解决了现代开发中的重复劳动、信息过载等核心痛点。 报告全面剖析了Trae的核心功能: 智能代码生成:支持上下文感知续写、自然语言驱动生成和多模态输入转换 对话式AI助手:提供侧边栏和行内对话模式,支持代码解释、Bug修复、重构建议等 Builder/SOLO

公众号:AI前沿侦探 159

当ListView显示不全时,除了总体测量外还要测量TextView的高度

好,直接撸代码,这样更明了 1.关于总体测量 当使用ScrollView嵌套ListView的时候,如果不对ListView进行高度的测量,ListView也不知道自己到底有多长,所以ListView会显示不全的,这里先上总体测量ListView的方法(这种测量方式有很多中,这里就上一种了); public void setListViewHeight(ListView list

Nothing 1347

某招标公告网和vcaptcha验证码识别逆向

本文分析了某验证码系统的加密流程及破解思路。首先通过反混淆技术定位到加密函数,拆解了包含指纹函数、环境参数等组成的加密字符串。研究发现验证码生成涉及canvas指纹、环境检测等反爬机制,可通过模拟浏览器环境绕过。验证过程需要解密图片顺序,通过work2.js计算还原图片位置,再结合滑动轨迹、时间等参数生成验证请求。文章仅提供技术研究思路,强调需遵守法律法规,严禁非法破解信息系统。完整流程包括环境模拟、加密参数还原、图片处理和轨迹生成等步骤,成功率较高。

码王吴彦祖的博客 578

使用Xlistview时TextView自动换行或ScrollView嵌套Listview高度显示不全

使用Xlistview时TextView自动换行或ScrollView嵌套Listview高度显示不全在最近的项目中用到ScrollView嵌套Listview。这样高度会显示不全。其实网上很多这个解决办法,只需在listview.setAdapter(adapter);后面添加一段代码 /* 动态设置ListView的高度 * @param listView

x158454996的博客 790

手把手教你学Simulink——基于电机驱动系统的场景实例:永磁同步电机(PMSM)在电动汽车中的矢量控制仿真

随着全球对环境保护的关注增加,电动汽车(Electric Vehicle, EV)因其环保特性而受到广泛关注。永磁同步电机(Permanent Magnet Synchronous Motor, PMSM)由于其高效率、高功率密度和良好的动态响应性能,在电动汽车驱动系统中得到了广泛应用。矢量控制(Field-Oriented Control, FOC)是实现PMSM高性能控制的关键技术之一,它能够实现对电机转矩和磁场的独立控制,从而达到类似直流电机的控制效果。本文将详细介绍如何使用来构建一个。

MHD0815的博客 1万+

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

ScrollView中嵌套ListView的完美解决方案

在ScrollView中嵌套ListView的时候往往会出现滑动事件导致冲突而使ListView显示不全的问题,而这个问题网上百度会得到一个很普遍的答案,就是重新计算ListView的高度,然后再讲其高度重新赋值给ListView,下面贴出代码解决方案: /** * 动态设置ListView的高度 * @param listView */ public static void setListVi

倩倩的博客专属领地 678

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

自定义TextView,解决计算listView中item高度的时候,如果其中的TextView字数超过一行,只计算到一行高度的问题

动态计算listView中item 的高度时,如果其中textview超过一行,只会计算其中第一行的刚度,(双层listview嵌套使用时经常出现这种问题)。我们需要自定义textview,动态计算textView的高度,具体代码如下 package com.example.wisdomoperating.view; import android.app.Activity; import

myrssq的博客 3100

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

ScrollView中嵌套ListView,TextView只显示一行的高度解决方案

这种情况下,TextView在OnMeasure中只测量了一行的高度,需要重新定义TextView package com.fyq.xueyou.widget; import android.app.Activity; import android.content.Context; import android.text.Layout; import android.util.A

Yelbosh的专栏 2902

解决ScrollView中嵌套ListView(本文为CornerListView)时显示异常的问题

  之前曾经就是做项目的时候,因为CornerListView的界面显示比较不错,所以经常用,但是突然发现嵌套在ScrollView中就会经常出现排布异常,很是苦恼的东西,两个不错的模块竟然无法存在,难道真的是“一山不容二货”,鱼与熊掌不可兼得?   没办法,还是都想要,所以就想办法了!   查资料,自己测试,终于有了解决方案! 首先看布局文件(不用变的): 1 &...

agnes9243的博客 187

ScrollView嵌套ListView只显示一行之计算的高度不正确的解决办法

文章来源:http://blog.youkuaiyun.com/spring_he/article/details/17409661 1、前言 从谷歌那里找到的ScrollView嵌套ListView只显示一行的解决办法相信很多人都遇到过,然后大部分都是用这位博主的办法解决的吧 刚开始我也是用这个办法解决的,首先感谢这位哥的大私奉献,贴上地址 http://blog.youkuaiyun.com/

bluebell_55的专栏 444

ScrollView 嵌套ListView 解决方案

方法一:重写ListView的onMeasure       public void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {           int expandSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >> 2, MeasureSpec.AT_MOS

duominike的专栏 215

Android用户界面的设计方法心得,android ui界面设计的一些心得与问题解决

1.把Button或者ImageButton的背景设为透明或者半透明:半透明透明其他透明度:在RGB的值前面加上数字(100以内),如#90436EEE(RGB为436EEE),#50436EEE,根据值的大小呈现不同的显示效果,值越小透明度越高。2.设置btn.setBackgroundResource(R.drawable.comment_sel);btn.setTextColor(getRe...

weixin_39912250的博客 857

android对layout进行监听,android UI设计的一些心得与问题解决(无效果图)

1.把Button或者ImageButton的背景设为透明或者半透明:半透明透明其他透明度:在RGB的值前面加上数字(100以内),如#90436EEE(RGB为436EEE),#50436EEE,根据值的大小呈现不同的显示效果,值越小透明度越高。2.设置按钮背景图片或颜色:btn.setBackgroundResource(R.drawable.comment_sel);btn.setTextC...

weixin_39531992的博客 640

解决android 模糊查询语句,在取值显示的时候,一个Textview中只能显示一段数据问题的方法。

Cursor cursor=db.query(&amp;quot;job&amp;quot;,null,null,null,null,null,null); if(cursor.moveToFirst()){ do{ int id=cursor.getInt(cursor.getColumnIndex(&amp;quot;id&amp;quot;)).

monologuezjp的博客 489
上一篇: 让“提交”按钮状态跟随edittext以及checkbox等的状态实时变化
下一篇: 关于Eventbus使用过程中的一点点发现
和小胖
博客等级 码龄12年 8粉丝 42原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值