Android 列表视图填充内容的高度

2023-12-13

我在 xml 中定义了一个列表视图,现在我正在设置内容视图setContentView(R.layout.topic_layout);,我里面有 5 个项目,目前它只填充列表视图高度的一半,但我希望它完全填充高度,这样我在底部就没有任何空间。

我已经搜索过但找不到任何解决方案,请帮助我实现这一目标:

我也这样设置适配器:

adapter = new MyAdapter(this);
        if (adapter != null) {
        setListAdapter(adapter);

        }

如果您有固定数量的项目并希望它们一直延伸到屏幕末尾,那么 ListView 并不是您的最佳选择。使用 LinearLayout 占据所有空间并将所有项目添加到其中。这是假设您希望这些项目每次都占据所有空间。

使用 LinearLayout,您可以均匀地分布项目,而无需自己进行任何计算。

LinearLayout linearLayout = new LinearLayout(getSupportActivity());
linearLayout.setOrientation(android.widget.LinearLayout.VERTICAL);

RelativeLayout.LayoutParams params = new LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,
            ViewGroup.LayoutParams.MATCH_PARENT);

for (int i = 0; i < 5; i++) {
    View individualView = new View(getSupportActivity());
    // Create your custom view here and add it to the linear layout
    // Leave the height as 0, LinearLayout will calculate the height properly.
    params = new LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, 0);
    additionalOption.setLayoutParams(params);

    // As a we are adding it to the linear layout, they will all have a weight of 1, which will make them spread out evenly.
    linearLayout.addView(additionalOption);
}
mainView.addView(linearLayout);

编辑:如果你已经用ListView实现了它并且更改它很麻烦,你可以执行以下操作。

确保列表视图宽度和高度在 xml 中设置为 match_parent。然后在创建自定义视图的适配器的 getView() 中,执行以下操作

// Get the height of the ListView
int totalHeight = listView.getHeight();
int rowHeight = totalHeight/getCount(); // Divide by number of items.

// Create custom view with the height calculated above.

请注意totalHeight 为0。如果您在onCreate() 中创建ListView 并在onCreate() 中设置适配器,则ListView 很可能尚未计算出宽度或高度。尝试在 onResume() 中设置适配器。此时,ListView 的尺寸已经计算出来并布置在屏幕上。

希望这可以帮助。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android 列表视图填充内容的高度 的相关文章

随机推荐

  • 使用 Java 5 运行 JAXB 编组异常 javax.xml.stream.FactoryConfigurationError

    我正在 JUnit 测试类中尝试简单的 JAXB 封送处理 并且使用的是 Java 5 运行测试时出现此错误 javax xml stream FactoryConfigurationError 未找到提供程序 com bea xml st
  • 如何将 2 个 wav 文件混合在一起?

    我正在尝试录制输入并将其与歌曲合并在一起 不是连接 我有一把在听歌曲时录制的吉他 我想将吉他放在歌曲中 如 audcaity 有什么办法可以做到吗 如果无法进行实时混音 是否可以在录制后合并它们 就像我录制吉他后 现在它是一个 wav 文件
  • Java Unsafe.copyMemory java.lang.IllegalArgumentException

    我对来自 Unsafe 的 copyMemory 有疑问 我花了2天的时间来解决它 但没有结果 下面提供的代码始终以 IllegalArgumentException 结束 你能帮我看看问题出在哪里吗 public void testMem
  • 将数据从一个模型分成两个后,如何重写我的猫鼬查询?

    在我的应用程序中 我存储评论 以前我的模型是这样的 var CommentsSchema new Schema username type String display name type String facebook username
  • 如何在 PHP 中的 cURL POST HTTP 请求中包含授权标头?

    我正在尝试通过 Gmail OAuth 2 0 访问用户的邮件 并且我正在通过 Google 的 OAuth 2 0 Playground 解决这个问题 在这里 他们指定我需要将其作为 HTTP 请求发送 POST mail feed at
  • 如何使用OpenCV进行人脸识别? [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 目前不接受答案 我正在尝试使用 OpenCV 做一些人脸识别 不是检测 的事情 我发现这篇文章有一些代码 http www cognotics com opencv
  • pandas-python 数据框更新一列

    假设我有一个包含品牌名称的品牌列表 BRANDS Samsung Apple Nike 数据框 A 具有以下结构 row item title brand name 1 Apple 6S Apple 2 Nike BB Shoes na l
  • 为 ios 构建一个具有电子签名功能的应用程序,可能使用单点触控?

    这只是一个简单的问题 因为我在谷歌上搜索并只找到了已经具有此功能的应用程序 但我如何着手创建一个能够捕获电子签名的应用程序 这可能吗 Xamarin 的组件商店有一个签名板执行此操作的组件 我也从头开始写过类似的东西 这并不是特别困难 代码
  • Tensorflow Estimator API 以 eval 模式保存图像摘要

    目前 我尝试使用 Tensorflow 的新 Estimator API 在自定义图像数据集上训练自动编码器 到目前为止一切正常 我遇到的唯一问题是当模型处于评估模式时将输入和输出图像保存为摘要 我在训练模式下创建的所有图像摘要都正确存储并
  • 该解决方案中信号量的使用是否正确?

    Problem 我必须增加 x1 和 x2 变量 这应该由单独的线程完成 并且在两个变量的上一个增量未完成之前不应调用两个变量的下一个增量 建议的解决方案 初始化 4 个信号量并调用单独的线程来单独递增变量 2 个信号量用于将消息传递到线程
  • C++/CX WinRT 指针的引用计数的线程安全

    我的印象是 考虑到用例 WinRT 对象的引用计数是线程安全的 但我遇到了一个错误 我不知道有什么其他方法可以解释 例如 以下代码很快就会崩溃 ref class C sealed public C virtual C Windows Fo
  • 带复选框的 Java 结果集到 JTable

    我有这段代码 它可以显示数据库中的数据 它运行良好 但我希望它在最后一列有复选框 我在这里找到了一些代码 但它仅适用于预定义的值 而不是来自数据库 如何向 JTABLE swing 添加复选框 截屏 Code public print in
  • Java 初学者 - 计算句子中的单词数

    我应该使用方法来计算句子中的单词数 我写了这段代码 但我不太确定为什么它不起作用 无论我写什么 我只收到 1 个字的计数 如果你能告诉我如何修复我写的内容而不是给我一个完全不同的想法 那就太好了 import java util Scann
  • 是否有“临时函数”之类的东西? [复制]

    这个问题在这里已经有答案了 有临时视图和临时表 是否有 临时函数 我有一个函数 我想在事务期间使用 然后丢弃 类似于临时表的用例 此外 我希望两个并发事务能够创建具有相同名称的相同函数 而无需锁争用 没有CREATE TEMP FUNCTI
  • SurfaceView 中带有 SimpleOnGestureListener 的 Android GestureDetector

    public class GameActivity extends Activity private static final String TAG GameActivity Override public boolean onTouchE
  • 如何在 Angular 中的本地存储中存储文件(2 及更高版本)

    我只想将图像或 pdf 或任何类型的文件存储在本地存储中 那么 有没有办法将文件存储在LocalStorage中呢 这是一个适用于 Angular 6 7 8 的独立服务 它在本地存储中下载 存储和检索文件 import Injectabl
  • 检测 Java 应用程序是否以 Windows 管理员身份运行

    我有一个 Java 应用程序 无论如何 我可以判断该进程是否在 Windows 7 上以管理员权限运行 我找到了一种似乎与平台无关的不同解决方案 它尝试编写系统首选项 如果失败 则该用户可能不是管理员 As 托马斯 扎托建议 您可能希望抑制
  • 使用改造上传文件时出现错误(没有此类文件或目录)

    我正在开发 Android 应用程序 我需要将带有文件的请求发布到服务器 我在用retrofit这样做 我这样做MultipartAPI 请求 然后我用Intent createChooser选择文件 当我这样做的时候问题就出现了enque
  • 使用 Storyboard 在 Mac sdk 中自定义字体

    如何在 Mac 应用程序开发中向情节提要添加自定义字体 我浏览了一些博客 并尝试添加字体书并使用故事板使用这种自定义字体开发一个 NStextfield 但这是系统相关的 我创建了 DMG 并安装在另一台计算机上 它使用默认字体 我以编程方
  • Android 列表视图填充内容的高度

    我在 xml 中定义了一个列表视图 现在我正在设置内容视图setContentView R layout topic layout 我里面有 5 个项目 目前它只填充列表视图高度的一半 但我希望它完全填充高度 这样我在底部就没有任何空间 我