适配器更新后 ListView 内容被截断

2023-12-12

我的用户界面中有许多垂直堆叠的面板。每个面板都包含一个 ListView。根据用户交互,ListView 中的项目数会更新。

我的问题是,如果我增加 ListView 中显示的项目数量,包含面板将不会扩展以显示它们。相反,我的 ListView 只是因淡入黑色而被切断。我正在以编程方式创建每个堆叠面板 - 这是创建函数的主体:

LinearLayout containingPanel = new LinearLayout(TestActivity.this);
containingPanel.setOrientation(LinearLayout.VERTICAL);

// create title
TextView titleText = new TextView(TestActivity.this);
titleText.setText("a title");
titleText.setGravity(Gravity.CENTER);
titleText.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT));


// create dynamic list view of costs                
ListView dynamicContentListView = new ListView(TestActivity.this);
dynamicContentListView.setAdapter(new MyDynamicAdapter());
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT);
params.weight = 1;
dynamicContentListView.setLayoutParams(params);

// build up GUI

containingPanel.addView(titleText); 

containingPanel.addView(dynamicContentListView);                        
return containingPanel;

我以为在ListView上设置权重就应该足够了,但事实并非如此。所有 GUI 更新都工作正常 - 新项目会自动添加到支持适配器的数据中,并且 ListView 会正确更新自身。但是,在我添加三到四个新项目后,containingPanel 拒绝更新自身,并且新项目会被混合掉。


试试这个功能。我想,这可能对你有帮助。该函数用于设置ListView的高度基于其子级。

public static void setListViewHeightBasedOnChildren(ListView listView) {
        ListAdapter listAdapter = listView.getAdapter();
        if (listAdapter == null) {
            // pre-condition
            return;
        }

        int totalHeight = 0;
        int desiredWidth = MeasureSpec.makeMeasureSpec(listView.getWidth(), MeasureSpec.AT_MOST);
        for (int i = 0; i < listAdapter.getCount(); i++) {
            View listItem = listAdapter.getView(i, null, listView);
            listItem.measure(desiredWidth, MeasureSpec.UNSPECIFIED);
            totalHeight += listItem.getMeasuredHeight();
        }

        ViewGroup.LayoutParams params = listView.getLayoutParams();
        params.height = totalHeight + (listView.getDividerHeight() * (listAdapter.getCount() - 1));
        listView.setLayoutParams(params);
        listView.requestLayout();
    }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

适配器更新后 ListView 内容被截断 的相关文章

  • Android Studio 3.0 Canary 9 - 无法解析包

    我在 Android Studio 3 0 Canary 9 中遇到几个错误 这些错误是 无法解析 android 软件包 下面列出了一些错误 我刚刚安装了 SDK 的所有额外软件包 但仍然收到 gradle 构建错误 Error 82 1
  • 类型容器“Android 依赖项”引用不存在的库 android-support-v7-appcompat/bin/android-support-v7-appcompat.jar

    我在尝试在我的项目中使用 Action Bar Compat 支持库时遇到了某种错误 我不知道出了什么问题 因为我已按照此链接中的说明进行操作 gt http developer android com tools support libr
  • React Native 从 JavaScript 代码内部访问 strings.xml

    有没有办法访问当前值android app src main res values strings xml从 JavaScript 代码内部 我想为每个构建放置不同的端点 URL 但我什至无法检测到反应本机代码内的构建类型 而不必求助于 D
  • 如何重试已消耗的 Observable?

    我正在尝试重新执行失败的已定义可观察对象 一起使用 Retrofit2 和 RxJava2 我想在单击按钮时重试特定请求及其订阅和行为 那可能吗 service excecuteLoginService url tokenModel Ret
  • Sqlite数据库生命周期?关闭应用程序后它会被删除吗?

    我正在遵循一个简单的教程 该教程创建一个从 SQLiteOpenHelper 扩展的类 并创建一个包含一个表和 5 行的数据库 好的 但我需要更多地了解 android Sqlite 数据库 例如 如果应用程序关闭或手机关机会发生什么 数据
  • 在 ViewPager Fragments 中使用 Master/Detail 模板(下载链接)

    工作代码 https github com lukeallison ViewPagerMasterDetail https github com lukeallison ViewPagerMasterDetail Android 主 详细流
  • java.lang.NoClassDefFoundError:org.apache.batik.dom.svg.SVGDOMImplementation

    我在链接到我的 Android LibGDX 项目的 Apache Batik 库时遇到了奇怪的问题 但让我们从头开始 在 IntelliJ Idea 中我有一个项目 其中包含三个模块 Main Android 和 Desktop 我强调的
  • Android 模拟器插件无法初始化后端 EGL 显示

    我在 Cloudbees 上设置了 Jenkins 作业 并且可以在那里成功签出并编译我的 Android 项目 现在我想在 android 模拟器中运行一些 JUnit 测试并添加 Android 模拟器插件 我将 显示模拟器窗口 选项设
  • CollapsingToolBarLayout - 状态栏稀松布颜色不改变

    几天前我更新了我的 android studio 并开始使用 CoordinatorLayout 和 CollapsingToolbarLayout 只是尝试一些东西 工具栏稀松布颜色似乎覆盖了状态栏初始颜色和状态栏稀松布颜色 从 xml
  • 尝试将相机切换回前面但出现异常

    尝试将相机切换回前面 但出现异常 找不到 问题请检查并帮助 error 01 27 11 49 00 376 E AndroidRuntime 30767 java lang RuntimeException Unable to start
  • 无法展开 RemoteViews - 错误通知

    最近 我收到越来越多的用户收到 RemoteServiceException 错误的报告 我每次给出的堆栈跟踪如下 android app RemoteServiceException Bad notification posted fro
  • 控制Android的前置LED灯

    我试图在用户按下某个按钮时在前面的 LED 上实现 1 秒红色闪烁 但我很难找到有关如何访问和使用前置 LED 的文档 教程甚至代码示例 我的意思是位于 自拍 相机和触摸屏附近的 LED 我已经看到了使用手电筒和相机类 已弃用 的示例 但我
  • JavaMail 只获取新邮件

    我想知道是否有一种方法可以在javamail中只获取新消息 例如 在初始加载时 获取收件箱中的所有消息并存储它们 然后 每当应用程序再次加载时 仅获取新消息 而不是再次重新加载它们 javamail 可以做到这一点吗 它是如何工作的 一些背
  • 在 SQLite 中搜索时排除 HTML 标签和一些 UNICODE 字符

    更新 4 我已经成功运行了firstchar例如 但现在的问题是使用regex 即使包含头文件 它也无法识别regex操作员 有什么线索可以解决这个问题吗 更新 2 我已经编译了sqlite3我的项目中的库 我现在正在寻找任何人帮助我为我的
  • Android Studio 0.4.3 Eclipse项目没有gradle

    在此版本之前 在 Android Studio 中按原样打开 Eclipse 项目似乎很容易 无需任何转换 我更喜欢 Android Studio 环境 但我正在开发一个使用 eclipse 作为主要 IDE 的项目 我不想只为这个项目下载
  • Android 中麦克风的后台访问

    是否可以通过 Android 手机上的后台应用程序 服务 持续监控麦克风 我想做的一些想法 不断聆听背景中的声音信号 收到 有趣的 音频信号后 执行一些网络操作 如果前台应用程序需要的话 后台应用程序必须能够智能地放弃对麦克风的访问 除非可
  • 如何根据 gradle 风格设置变量

    我想传递一个变量test我为每种风格设置了不同的值作为 NDK 的定义 但出于某种原因 他总是忽略了最后味道的价值 这是 build gradle apply plugin com android library def test andr
  • Android 套接字和 asynctask

    我即将开始制作一个应该充当 tcp 聊天客户端的应用程序 我一直在阅读和阅读 我得出的结论是最好 如果不需要 将我的套接字和异步任务中的阅读器 问题是我不确定从哪里开始 因为我是 Android 新手 这至少对我来说是一项艰巨的任务 但据我
  • 在activity_main.xml中注释

    我是安卓新手 据我所知 XML 中的注释与 HTML 中的注释相同 使用 形式 我想在 Android 项目的 Activity main xml 配置文件中写一些注释 但它给了我错误 值得注意的是 我使用的是 Eclipse 但目前 我直
  • 按日期对 RecyclerView 进行排序

    我正在尝试按日期对 RecyclerView 进行排序 但我尝试了太多的事情 我不知道现在该尝试什么 问题就出在这条线上适配器 notifyDataSetChanged 因为如果我不放 不会显示错误 但也不会更新 recyclerview

随机推荐

  • 在 listView 内的 listItem 内的 textView 上使用 setSelected

    我试图让滚动文本 选取框 发生在列表视图中 但从我之前的阅读来看 我似乎需要在文本视图上使用 setSelected true 因为textview位于listitem而不是listview内部 所以我似乎无法在该textView上使用ge
  • R 记录链接标识

    我正在 R 中使用 RecordLinkage 库 我有一个包含 id 姓名 电话 邮件的数据框 我的代码如下所示 ids data id pairs compare dedup data identity ids blockfld as
  • 当我发布 Web 应用程序时,我对隐藏代码所做的更改未更新

    我有一个在 VS2010 中构建的 ASP net 在 iis7 中运行 但是当我返回 VS 并更新文件后面的代码并重新发布该应用程序时 该应用程序的行为仍然与我进行更改之前一样 我已尝试删除并重新发布所有文件并重新启动应用程序池 但它仍然
  • Python TCP socket.recv() 一旦建立连接就什么也不返回

    我正在尝试实现最基本的 python TCP 服务器 Windows 8 Python 2 7 防火墙已关闭 代码来自这里 https wiki python org moin TcpCommunication 如果我做客户的事情 sock
  • 如何在 Chrome 中配置工作区?

    我正在尝试为我的本地项目激活工作区工具 当我在浏览器中编辑代码时 我想对代码应用 CSS 更改 我已将项目的文件夹 前缀 url 和路径添加到 Chrome 如下所示 但是当我将其更改为浏览器时 我的代码仍然没有任何变化 这是怎么回事 以下
  • NSURLSession/NSURLConnection HTTP 加载在子域上失败(kCFStreamErrorDomainSSL,-9802)?

    我们的应用程序在生产和开发环境中都运行良好 但在临时环境中我们遇到常见错误 NSURLSession NSURLConnection HTTP load failed kCFStreamErrorDomainSSL 9802 据我了解 当您
  • 返回按钮非常慢

    我有一个 Android 应用程序 其中 TabActivity 包含 4 个选项卡 一个列表视图 一个地图视图 另一个列表和一个 Web 视图 从列表视图中 我可以点击一个项目 它会启动另一个活动 按 返回 返回到选项卡活动 但是 访问地
  • 在 Android 上安装 Pocketsphinx

    我对在 Android 手机上安装 Pocketsphinx 有一些疑问 并且我无法在 CMUSphinx 的支持论坛 IRC 现有的 StackOverflow 帖子或大量的 Google 搜索上找到答案 如果这里有人愿意花一分钟时间并愿
  • 使用 Web API 时没有结果

    我正在尝试使用 PHP 从美国邮政服务 USPS 费率计算器中提取 XML 页面 这是我正在使用的代码 当然替换了我的 API 登录名和密码
  • 垂直自动滚动文本视图

    我只是想设置一个简单的 TextView 包裹在 ScrollView 中 它将自动向下滚动显示 TextView 的内容 就像电影显示片尾字幕一样 我不希望用户必须与滚动条交互 屏幕上没有我正在使用的按钮或其他布局 因此制作人员名单填满了
  • 尝试将文件上传到 CKAN 时出错:“无法获取存储上传凭据。上传无法继续”

    当尝试将文件上传到 CKAN 中的数据集时 我在 Web 界面中收到此错误 Failed to get credentials for storage upload Upload cannot proceed 此错误通常是由于 CKAN 的
  • LESS CSS 使用不同的前缀转义整个 CSS 规则?

    我如何避免以下情况 prefix rule prop webkit rule prop moz rule prop o rule prop ms rule prop rule prop 我尝试了很多不同的方法 将其包装在 stuff 将变量
  • 我的 GPU 上的总线程数、块数和网格数。

    For the NVIDIA GEFORCE 940mx GPU Device Query shows it has 3 Multiprocessor and 128 cores for each MP 每个多处理器的线程数 2048 所以
  • 4 点之间的场景套件形状

    鉴于我在上一个问题中采取的路线 ARKit 在 Swift 3 中的平面上的 2 个向量点之间放置一个 SCNPlane 似乎有缺陷 我正在寻找其他选择 我可以在两个节点之间画一条线 然后我可以在这些节点之上创建节点 有效地在一个正方形中
  • 在 C# 中,如何将刷新/重绘消息发送到 WPF 网格或画布?

    如何向 WPF 网格或画布发送刷新消息 换句话说 我注意到在调试模式下 我可以编写代码将一行发送到显示器 然后 如果该行不正确 我可以调整它 但前一行仍然存在 现在 我正在编写的代码根据用户单击的内容将信息发送到显示器 因此 这必定意味着每
  • Instagram API 错误:已达到客户端请求限制

    每当我尝试通过 API 在 Instagram 上关注某人时 无论之前已关注了多少次 我都会收到此错误 meta error type APIError code 400 error message Client request limit
  • 如何从 REST 端点捕获 JsonParseException

    我有一个像这样的端点 POST public Response update MyDocument myDocument 如果请求无效 我的服务器将收到一些很长的日志 如下所示 javax servlet ServletException
  • 继承 - 符号未定义 Objective-C++

    快速问题 这只是我对继承的误解 所以这应该很快就能解决 我正在使用 Objective C 如果问题已经解决了 我会取消这个问题 我找不到它 因此我的帖子 我有以下内容 基础 h文件 ifndef BASE H define BASE H
  • Facebook 注册日期

    如何查找 Facebook 上的注册个人资料的日期 是否可以 我可以通过 API 来做吗 我用谷歌搜索 但找不到解决方案 没有公共途径可以获取此信息 对不起
  • 适配器更新后 ListView 内容被截断

    我的用户界面中有许多垂直堆叠的面板 每个面板都包含一个 ListView 根据用户交互 ListView 中的项目数会更新 我的问题是 如果我增加 ListView 中显示的项目数量 包含面板将不会扩展以显示它们 相反 我的 ListVie