ListView的高度填充整个屏幕,尽管设置为wrap_content

2023-11-23

我在 LinearLayout 中有这个 ListView:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical" >

    <TextView
        .../>

    <EditText />
      ...
    </EditText>


    <ListView
        android:id="@+id/words_list"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" >
    </ListView>

</LinearLayout>

该列表由 SimpleCursorAdapter 以编程方式填充:

adapter = new SimpleCursorAdapter(this, R.layout.list_row_search, mCursor, from, to);

list_row_search 有一个带有两个 TableRow 的 TableLayout:

<?xml version="1.0" encoding="utf-8"?>
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/TableLayout1"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal" >

    <View
        android:layout_height="1dip"
        android:background="#FF33B5E5" />

    <TableRow
        android:id="@+id/tableRow1"
        android:layout_height="wrap_content" >

        <TextView
            android:id="@+id/list_lesson"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:padding="1dip"
            android:textSize="12sp" />

        <TextView
            android:id="@+id/list_name"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="5.25"
            android:padding="1dip"
            android:paddingRight="10dp"
            android:textSize="18sp"
            android:textStyle="bold" />

        <TextView
            android:id="@+id/list_flex"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="12.5"
            android:padding="1dip"
            android:paddingRight="10dp" />

        <TextView
            android:id="@+id/list_rom"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="6.25"
            android:padding="1dip"
            android:paddingRight="10dp" />
    </TableRow>

    <View
        android:layout_height="0.1dip"
        android:background="#404040" />

    <TableRow
        android:id="@+id/tableRow2"
        android:layout_height="wrap_content" >

        <TextView
            android:id="@+id/list_related"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="2"
            android:paddingRight="10dp"
            android:textStyle="italic" />

        <TextView
            android:id="@+id/list_ant"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:paddingRight="10dp" />

        <TextView
            android:id="@+id/list_engl"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:paddingRight="10dp" />
    </TableRow>

    <View
        android:layout_height="1dip"
        android:background="#FF33B5E5" />

</TableLayout>

现在,当列表被填充时,即使在数据库中只找到一个元素,ListView 也会占据孔屏。 Eclipse 中的 HierarchyView 显示得非常清楚,ListView 是填充屏幕的那个。

你能说出问题出在哪里吗?谢谢你的时间!


你不应该使用wrap_content对于 a 的高度ListView. wrap_content意思是“让我足够大以容纳我所有的孩子”。当您考虑到您的数据集可能非常大时,这听起来像是一个非常糟糕的主意。 由于您使用的是 LinearLayout,因此请给您的 ListViewlayout_height="0dp" and layout_weight="1".

没关系,让ListView占据屏幕的剩余部分。如果只有一行,那就显示一行,没什么大不了的。除非您试图在列表下方显示某些内容,但我上面告诉您的内容应该可以实现这一点。

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

ListView的高度填充整个屏幕,尽管设置为wrap_content 的相关文章

  • ListView 中的错误:InvalidArgument = 值“0”对于“index”无效

    当我第二次选择 ListView 中的某个项目时 会出现此错误 我尝试调试它 当我第二次选择某个项目时 list answers SelectedItems Count是0 为什么呢 这是我的代码 private void list ans
  • BLE 外设支持 Android-L 示例 [关闭]

    Closed 这个问题需要调试细节 help minimal reproducible example 目前不接受答案 我希望有一个适用于 Android L 的 BLE 外设模式的示例 我的代码给了我奇怪的错误 即广告商太多 这没有任何意
  • 如何从一个活动中完成一系列开放的子活动?

    我正在尝试为我的应用程序制作一个退出按钮 无论如何 我能够跟踪我的应用程序中的所有活动实例 然后完成它们 但在某些情况下 仍有一些活动仍然存在 不知道怎么办 有没有什么方法可以杀死android中的特定应用程序 或者我可以通过任何其他方式退
  • OPENGL ES 不工作:无当前上下文

    我尝试了 OpenGL ES2 for Android 一书中所示的程序 但它不起作用 我已经在Odroid E 三星s3 三星y 三星star上进行了测试 the gl version suported returns 2 but i g
  • 添加动态数据时 footable 出现问题

    我需要 jQuery Mobile 方面的一些帮助富表 http css tricks com footable a jquery plugin for responsive data tables 我正在表中动态添加数据 HTML tab
  • Android向后兼容技术

    我现在在开发基于最新 API 15 ICS 的 15 项活动 Android 应用程序方面取得了进展 现在我发现应用程序的主要功能主义者即使支持 android v4 也不向后兼容 例如 1 fragment事务动画 2 将StringSe
  • 导航组件参数默认值

    在导航组件中 将参数从第一个片段发送到第二个片段时 默认值不会从导航图中获取哪个集合 这是我的代码 导航图 xml
  • Android ListView 自定义适配器 ImageButton

    这可能不是正确的方法 如果有更好的方法请告诉我 我创建了一个自定义适配器类 在我的 getView 方法中我膨胀了我想要使用的视图 public View getView int position View convertView View
  • ListView:防止视图回收

    我有一个使用回收视图的 ListView 我试图阻止视图被回收 所以我使用 setHasTransientState android support v4 view ViewCompatJB setHasTransientState Vie
  • 如何在 Android 应用程序中单击按钮时打开 Gmail Compose?

    当我的 Android 应用程序中单击按钮时 我尝试打开 Gmail 撰写屏幕 我需要 Google 提供的 API 密钥吗 或者我需要在按钮 onClickListener 中做什么 任何形式的见解都非常值得赞赏 正如 JeffC 指出的
  • 需要在 Android 中伪造正在扫描的 NFC 标签

    好的 我有一个应用程序 此应用程序仅在扫描 NFC 标签 任何标签 时才会完成任务 唯一的问题是 我没有任何 nfc 标签 无论如何 我正试图消除对卡的需要 所以我需要的是一种 伪造 使其看起来 就像已扫描 nfc 标签的方法 我可以编写应
  • 在后台服务中持续获取位置更新

    我正在开发需要在后台服务中持续获取位置更新的应用程序 我已经使用了它正在使用的后台粘性服务 但是 即使我添加了启动广播并在那里启动了服务 启动完成后服务也没有启动 服务启动并立即被杀死 另外 这不适用于奥利奥 服务在应用程序关闭几分钟后停止
  • 如何更改对话框片段内的片段

    我想做一个空的DialogFragment with a LinearLayout然后更改里面的片段LinearLayout 例如 第一个片段是 3 个按钮 facebook google 电子邮件登录 的登录 当有人按下电子邮件时 第 2
  • Spotify 登录错误 INVALID_CLIENT:无效的重定向 URI android

    我正在制作一个包含 Spotify 集成的应用程序 我点击了此链接https developer spotify com technologies spotify android sdk tutorial https developer s
  • 在 android 中,第一次单击时按钮侦听器未注册

    因为我是 Android 新手 所以我遇到了按钮监听器的问题 我正在使用 OnClickListener 来处理胸像 但它第一次点击后不执行一旦我单击多个 它就会表现良好 但如何使其在第一次单击时成为可能 这是我的代码 public cla
  • 如何在 onDraw() 方法中定义与像素无关的高度

    我扩展了 View 来构建自定义小部件 我想用独立的像素单位定义小部件的高度 我认为可以通过将像素密度乘以所需的高度来完成 但我不知道该怎么做 到目前为止我所拥有的 最小化 public class Timeline extends Vie
  • Android 4.2 - Environment.getExternalStorageDirectory().getPath() 行为

    我一直在开发一个android应用程序 在上次更新到4 2之前 我使用 Environment getExternalStorageDirectory getPath 它返回了我 storage sdcard0 但自从更新后我现在得到了 s
  • 使用 RecyclerView.Adapter 在 onBindViewHolder() 内设置 onItemClickListener

    我有一个自定义对象 学生班 public class Student private String name private String age public String getName return name public void
  • 膨胀类 android.support.design.widget.CoordinatorLayoute 时出错

    我正在尝试运行我的应用程序 但不断收到标题中列出的错误 我读过周围的内容 人们说尝试将主题更改为 AppCombat 主题 但这似乎不起作用 以下是我遇到的错误 Process com example jmeyer27 crazytiles
  • Android Jasper 报告

    Jasper Reporting 可以集成到 Android 应用程序中吗 我正在尝试从 jrxml 文件生成 PDF CSV 文本和 XLS 报告 但是 我没有看到 Android SDK 支持 net sf jasperreports

随机推荐

  • 使用包含空值的数组执行 PDO [重复]

    这个问题在这里已经有答案了 我需要更新数据库并且我使用 PDOexecute 方法通过给它一个数组作为参数 这个想法是 当我尝试插入一个时 它会给我一个错误NULL价值 以下是发送的查询 参数的示例 生成的查询 UPDATE table S
  • 功能:bcmod 不可用

    我在安装 joomla 组件之一时收到以下错误 功能 bcmod 不可用 请询问您的主机如何在 PHP 安装中启用此功能 您需要使用 bcmath 支持 enable bcmath 配置选项 来编译 PHP 如果您使用共享主机 他们不太可能
  • 需要良好的 WPF MVVM 教程 [重复]

    这个问题在这里已经有答案了 可能的重复 MVVM 从头到尾的教程 我刚刚开始学习WPF 我需要学习 MVVM 模式并希望在我的 WPF crud 应用程序中实现 MVVM 所以有人请指导我如何在 WPF 中遵循 MVVM 模式开发 CRUD
  • 纸浆求解器错误

    我正在尝试在 puLP Python 中求解 MILP 但不断收到以下错误 Traceback most recent call last File main lp py line 63 in
  • 前台的 Firebase 通知

    我在使用 FireBase 推送通知时遇到问题 当我的应用程序位于后台时 通知即将到来 但是当我的应用程序位于前台时 我没有收到通知 但在控制台中显示了通知 这意味着通知在这里 但没有显示在通知栏中 你可以帮帮我吗 Override pub
  • java 获取日期标记字段(上午/下午)

    我需要获取日期对象中的 AM PM 字段 我怎么才能得到它 这是我的代码 String startTime 01 05 PM SimpleDateFormat sdf new SimpleDateFormat hh mm aa Date s
  • Swift (iOS) 和 PHP 中 AES256 加密的不同结果

    我正在使用 AES256 工作 以便能够使用不安全的通道在 iOS 和 PHP 之间进行加密 解密 我见过很多类似的问题 涉及密钥大小 模式 CBC 或 ECB 随机 iv 的使用等 但在这种情况下 我发现了一个奇怪的行为 如下所示 两种环
  • 有没有办法摆脱 boost::mpl for_each ?

    确实很简单的问题 让我介绍一些背景 我有一个mpl vector类型 其中每种类型都有一个 id 在运行时我使用mpl for each迭代此向量并找到给定 id 的匹配类型 但一旦找到 继续循环就没有意义了 所以 问题是 有没有办法摆脱它
  • 从日期选择器获取值

    我想从 JavaFX datepicker 获取值并将该值存储为日期对象 final DatePicker datePicker new DatePicker LocalDate now Date date datePicker getVa
  • 在 asp.net c# 中创建简单的 cookie

    我的应用程序需要存储cookie 当用户登录时 我想确保如果 cookie 不存在 则创建它并存储值 但如果它确实修改它 if cookieExist cookiename value else create a new cookie th
  • 未找到匹配项时 gsub 返回空字符串

    我正在使用gsubR 中的函数返回文本列表中我的模式 参考号 的出现次数 除非找不到匹配项 否则这非常有效 在这种情况下 我会返回整个字符串 而不是空字符串 考虑这个例子 data lt list a sentence with citat
  • 获取该月时间的最后一天。时间

    当我有一个time Time January 29th t time Parse 2006 01 02 2016 01 29 我怎样才能得到一个time Time哪个代表1月31日 这个例子很简单 但是当二月有一个日期时 最后一天可能是 2
  • 使用支持库 23.2.0 的 Recyclerviews 和 SwipeRefreshLayout

    有人找到了让 recyclerviews AppbarLayouts 和 SwipeRefreshLayout 在 23 2 上协同工作的方法吗 我认为我正在使用一种非常标准的方法 但是当尝试向上移动回收器视图时 swiperefreshl
  • LINQ:拆分Where OR 条件

    所以我有以下条件 sessions sessions Where y gt y session SESSION DIVISION Any x gt x DIVISION ToUpper Contains SearchContent y se
  • 单元测试时链接器错误:ld:非法文本重定位到...中的cstring,来自.../libavutil.a(imgutils.o)中的_av_image_check_size

    在Xcode 4 3 2中 构建一个iPad应用程序 其中包括libavutil a从 ffmpeg 发行版中 它可以正确构建和运行 但是当我尝试运行单元测试 Cmd U 时 出现以下链接器错误 ld 对于体系结构armv7 从 myPat
  • Android studio OpenJDK 平台二进制问题重复次数高达 80 或更多 [重复]

    这个问题在这里已经有答案了 你好 自从昨天我在 Android Studio 上遇到了这个问题 它多次打开 JDK 平台二进制文件 我没有让它继续下去 并且我的笔记本电脑将没有响应 我该如何解决这个问题 任何想法 检查您的热点是否已打开 将
  • java.lang.NoClassDefFoundError:javax / servlet / http / HttpServlet [重复]

    这个问题在这里已经有答案了 我在一个Web应用程序上工作 我使用axis2创建了一个Web服务 我将此Web服务集成到我的应用程序中 但问题是当我尝试通过以下URL检索wsdl时 http localhost 8080 ConsoleSyn
  • 如何为图中的每个子图设置标签

    假设我的数据集中有四个特征并绘制散点图 每次使用两个特征进行绘图 我想为每个特征提供标签 分别绘制 fig axes plt subplots ncols 2 figsize 10 8 axes 0 scatter x1 x2 marker
  • 如何从命令行重新加载 .bash_profile

    如何重新加载文件 bash 配置文件来自命令行 我可以让 shell 识别更改 bash 配置文件通过退出并重新登录 但我希望能够按需执行此操作 只需输入source bash profile 或者 如果您喜欢保存击键 您可以键入 bash
  • ListView的高度填充整个屏幕,尽管设置为wrap_content

    我在 LinearLayout 中有这个 ListView