当前位置: 首页 > news >正文

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

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

解决方案1:

直接把包含ListView控件的ScrollView控件从布局文件中去除,留下ListView控件,这是最简单快捷的解决办法.
如果一定要在ScrollView中包含ListView,则参考

解决方案2:

public void showlist()
{
        List<HashMap<String, String>> dataHashMaps = new ArrayList<HashMap<String, String>>();
        for (int i = 0; i < 8; i++)
        {
            HashMap<String, String> map = new HashMap<String, String>();
            map.put("name", "张三" + i);
            map.put("phone", "1333333333" + i);
            dataHashMaps.add(map);
        }
        System.out.println(dataHashMaps.size());
        SimpleAdapter adapter = new SimpleAdapter(this, dataHashMaps, R.layout.item, new String[]
        { "name", "phone" }, new int[]
        { R.id.name, R.id.phone });
        ListView listView = (ListView) findViewById(R.id.list);
        listView.setAdapter(adapter);

        //处理方案:
        int totalHeight = 0;
        // 如果没有设置数据适配器,则ListView没有子项,返回。
        for (int index = 0, len = adapter.getCount(); index < len; index++)
        {
            View listViewItem = adapter.getView(index, null, listView);
            // 计算子项View 的宽高
            listViewItem.measure(0, 0);
            // 计算所有子项的高度和
            totalHeight += listViewItem.getMeasuredHeight();
        }
        ViewGroup.LayoutParams params = listView.getLayoutParams();
        // listView.getDividerHeight()获取子项间分隔符的高度
        // params.height设置ListView完全显示需要的高度
        params.height = totalHeight + (listView.getDividerHeight() * (adapter.getCount() - 1));
        listView.setLayoutParams(params);
    }


相关文章:

  • does not specify a android.test.InstrumentationTestRunner instrumentation or does not declare
  • java.lang.SecurityException: Permission Denial: opening provider
  • MySQL中GROUP_CONCAT函数长度限制处理/实现行转列的功能
  • Android短信的发送和广播接收者实现短信的监听
  • Android广播接实现电话的监听(电话的状态,拦截)
  • Android之电话监听(利用服务实现)
  • IE8 “Automation 服务器不能创建对象”问题解决方法
  • tag s:property must be empty, but is not错误原因
  • Linux查看日志命令
  • linux下redis安装
  • bash: ifconfig: command not found 解决办法
  • Android ----waiting for debugger
  • MongoDB在Windows2003上得安装配置及使用
  • java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener
  • Caused by: Cannot locate the chosen ObjectFactory implementation: spring - [unknown location] 的解决方式
  • @jsonView过滤属性
  • [NodeJS] 关于Buffer
  • 【Leetcode】104. 二叉树的最大深度
  • canvas 五子棋游戏
  • cookie和session
  • CoolViewPager:即刻刷新,自定义边缘效果颜色,双向自动循环,内置垂直切换效果,想要的都在这里...
  • JavaScript创建对象的四种方式
  • Python socket服务器端、客户端传送信息
  • Sass 快速入门教程
  • Spring Boot快速入门(一):Hello Spring Boot
  • 关于springcloud Gateway中的限流
  • 经典排序算法及其 Java 实现
  • 排序(1):冒泡排序
  • 如何将自己的网站分享到QQ空间,微信,微博等等
  • 跳前端坑前,先看看这个!!
  • 推荐一款sublime text 3 支持JSX和es201x 代码格式化的插件
  • 微信小程序--------语音识别(前端自己也能玩)
  • ​​​​​​​sokit v1.3抓手机应用socket数据包: Socket是传输控制层协议,WebSocket是应用层协议。
  • #etcd#安装时出错
  • #NOIP 2014# day.1 T2 联合权值
  • $con= MySQL有关填空题_2015年计算机二级考试《MySQL》提高练习题(10)
  • (3)nginx 配置(nginx.conf)
  • (MATLAB)第五章-矩阵运算
  • (八)五种元启发算法(DBO、LO、SWO、COA、LSO、KOA、GRO)求解无人机路径规划MATLAB
  • (附源码)计算机毕业设计SSM疫情下的学生出入管理系统
  • (论文阅读26/100)Weakly-supervised learning with convolutional neural networks
  • (三)模仿学习-Action数据的模仿
  • (已解决)vue+element-ui实现个人中心,仿照原神
  • (原創) 如何優化ThinkPad X61開機速度? (NB) (ThinkPad) (X61) (OS) (Windows)
  • (原創) 物件導向與老子思想 (OO)
  • (转)Sql Server 保留几位小数的两种做法
  • .cn根服务器被攻击之后
  • .NET Compact Framework 3.5 支持 WCF 的子集
  • .net on S60 ---- Net60 1.1发布 支持VS2008以及新的特性
  • .net 打包工具_pyinstaller打包的exe太大?你需要站在巨人的肩膀上-VC++才是王道
  • .net 微服务 服务保护 自动重试 Polly
  • .NET/MSBuild 中的发布路径在哪里呢?如何在扩展编译的时候修改发布路径中的文件呢?
  • .NetCore Flurl.Http 升级到4.0后 https 无法建立SSL连接
  • .netcore如何运行环境安装到Linux服务器
  • .net和php怎么连接,php和apache之间如何连接