如何在scrollview中添加两个listview

2023-12-06

我在一个滚动视图中添加两个列表视图,因为我的两个列表视图都将包含数据,但我面临的问题是,当我在滚动视图中添加列表视图时,它只显示每个列表视图的一项。

这是图像,

enter image description here

XML 代码是:

<ScrollView
        android:id="@+id/scrollView"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_above="@+id/layoutFooter7"
        android:layout_below="@+id/linArrange" >

        <RelativeLayout
            android:id="@+id/linListViews"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content">

            <ListView
                android:id="@+id/lstviewUnBlockVenues"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:cacheColorHint="#00000000"
                android:divider="#00000000"
                android:dividerHeight="0dp"
                android:fadeScrollbars="false" >

            </ListView>

            <LinearLayout
                android:id="@+id/linearLayout1"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:layout_below="@+id/lstviewUnBlockVenues"
                android:background="#ABCDEF"
                android:orientation="vertical" >

                <TextView
                    android:id="@+id/textView2"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="Blocked Venues"
                    android:textAppearance="?android:attr/textAppearanceLarge"
                    android:textColor="#061218" />
            </LinearLayout>



            <ListView
                android:id="@+id/lstviewBlockedVenues"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:layout_below="@+id/linearLayout1"
                android:cacheColorHint="#00000000"
                android:divider="#00000000"
                android:dividerHeight="0dp"
                android:fadeScrollbars="false" >

            </ListView>
        </RelativeLayout>
    </ScrollView>

我想要的是,如果列表视图包含更多项目,滚动视图应该向下滚动,因为此时两个列表视图仅显示一项:(


我使用了“arnp”的答案,并在滚动视图中使用 3 listView 制作了示例。效果很好。

布局 :

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".MainActivity" >

    <ScrollView
        android:layout_width="fill_parent"
        android:layout_height="fill_parent" >

        <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical" >

            <ListView
                android:id="@+id/list1"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content" />

            <View
                android:layout_width="fill_parent"
                android:layout_height="5dp"
                android:background="#ff0000" />

            <ListView
                android:id="@+id/list2"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content" />

            <View
                android:layout_width="fill_parent"
                android:layout_height="5dp"
                android:background="#ff0000" />

            <ListView
                android:id="@+id/list3"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content" />

            <View
                android:layout_width="fill_parent"
                android:layout_height="5dp"
                android:background="#ff0000" />
        </LinearLayout>
    </ScrollView>

</RelativeLayout>

活动 :

package com.example.listviewtest;

import java.util.ArrayList;
import java.util.List;

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.view.ViewGroup;
import android.view.ViewGroup.LayoutParams;
import android.widget.ArrayAdapter;
import android.widget.BaseAdapter;
import android.widget.ListAdapter;
import android.widget.ListView;

public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        ListView list1 = (ListView) findViewById(R.id.list1);
        ListView list2 = (ListView) findViewById(R.id.list2);
        ListView list3 = (ListView) findViewById(R.id.list3);


        String[] items1 = { "Alfa1", "Alfa2", "Alfa3", "Alfa4", "Alfa5", "Alfa6", "Alfa7", "Alfa8", "Alfa9", "Alfa10", "Alfa11", "Alfa12", "Alfa13", "Alfa14", "Alfa15", "Alfa16", "Alfa17"  };
        String[] items2 = { "Beta1", "Beta2", "Beta3", "Beta4", "Beta5", "Beta6", "Beta7", "Beta8", "Beta9", "Beta10", "Beta11", "Beta12", "Beta13", "Beta14", "Beta15", "Beta16", "Beta17" };
        String[] items3 = { "Teta1", "Teta2", "Teta3", "Teta4", "Teta5", "Teta6", "Teta7", "Teta8", "Teta9", "Teta10", "Teta11", "Teta12", "Teta13", "Teta14", "Teta15", "Teta16", "Teta17" };

        ArrayAdapter<String> adapter1 = new ArrayAdapter<String>(this,
                android.R.layout.simple_list_item_1, items1);
        list1.setAdapter(adapter1);
        ArrayAdapter<String> adapter2 = new ArrayAdapter<String>(this,
                android.R.layout.simple_list_item_1, items2);
        list2.setAdapter(adapter2);
        ArrayAdapter<String> adapter3 = new ArrayAdapter<String>(this,
                android.R.layout.simple_list_item_1, items3);
        list3.setAdapter(adapter3);

        setListViewHeightBasedOnChildren(list1);
        setListViewHeightBasedOnChildren(list2);
        setListViewHeightBasedOnChildren(list3);

    }

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

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

            ViewGroup.LayoutParams params = listView.getLayoutParams();
            params.height = totalHeight + (listView.getDividerHeight() * (listAdapter.getCount() - 1));
            listView.setLayoutParams(params);
            listView.requestLayout();
        }


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

如何在scrollview中添加两个listview 的相关文章

随机推荐

  • 如何将绑定错误转化为运行时异常?

    正如我们的项目中设置了 将警告视为错误 以捕获早期可能的问题一样 我希望有一个运行时异常来尽早捕获它们 我最近被这个问题困扰了 我很高兴能有这个 能做到吗 如果是的话 怎么办 你可以挂入PresentationTraceSources与您自
  • 从数据框中删除百分比

    我有一个源自 Excel 文件的数据框 它在列上方有常见的标题 但有些列中有 符号 我想删除它们 搜索 stackoverflow 给出了一些很好的代码 用于从矩阵中删除百分比 有什么方法可以编辑 R 中矩阵中的值吗 当我尝试将其应用到我的
  • 如何在 Angular 中初始化 Firebase App Check

    我想知道如何使用 Angular 初始化 firebase 应用程序检查 我正在使用 Angular Fire 但我不确定如何在使用任何服务之前初始化 Firebase 应用程序检查 文档有这个 在访问任何 Firebase 服务之前 将以
  • 如何清除 Windows Phone 8 上 Cordova Web View 的缓存?

    我正在为 Windows Phone 8 开发 Cordova 2 9 0 应用程序 该应用程序大量使用外部内容 使用从其他来源提供的 JS 和 HTML 内容 一切正常 但浏览器组件缓存严重 我发现清除缓存的唯一方法是卸载并再次安装该应用
  • Xcode 4.4 有 subversion 吗?

    我刚刚下载了 Xcode 4 4 与它的前身不同 没有安装程序 只有一个 app 颠覆潜伏在某处吗 里面有目录吗 app我可以添加到PATH恢复我所有的命令行工具 从 XCode 首选项安装命令行工具 一切都会恢复正常
  • 如何在 JavaScript 单元测试中模拟 localStorage?

    有没有可以模拟的库localStorage 我一直在使用Sinon JS对于我的大多数其他 javascript 模拟 我发现它真的很棒 我的初步测试表明 localStorage 拒绝在 Firefox 中分配 sadface 所以我可能
  • 如何在普通的html文本框中自动换行?

    我有这个文本框 p Event Data p
  • 恢复曾经暂存但未提交的文件?

    我已经在现有项目中初始化了 git repo 暂存了所有文件 然后在没有进行初始提交的情况下决定清理索引 不知道为什么我认为这是一个好主意 但我立即输入git reset hard 我真的不能说出我此刻的想法 也许几个不眠之夜造成了损失 现
  • 联合的默认值是否始终为零?

    请让我们考虑以下代码 include
  • C# / WPF 取消密码框内的密码掩码

    每当我单击复选框时 如何解密和隐藏密码框中的密码 我正在使用 C WPF 模板 这是我的 XAML 代码
  • HDFS 文件如何存储在底层操作系统文件系统上?

    HDFS 是 Hadoop 中的逻辑文件系统 块大小为 64MB HDFS 上的文件保存在底层操作系统文件系统上 例如块大小为 4KiB 的 ext4 据我所知 对于本地文件系统上的文件 操作系统使用4KiB块的物理硬盘的起始柱面和结束柱面
  • 使用 Objectify 创建或出错

    我正在开始使用 Google App Engine 并且正在使用 Objectify 如何在数据存储中创建根实体 但如果它已经存在 则会出错 我没有找到任何内置的东西 例如DatastoreService put 因此ofy save 将覆
  • Entity Framework Core 在 QueryType(数据库视图)上使用 Include

    我将 EF Core 连接到 MySql 并且有一个名为 帖子浏览量 我读了这个article说我可以使用数据库视图的查询类型 如果我只调用 context PostViews 它就可以工作 但如果我在它上面使用 Include 例如 co
  • 不同的浏览器意味着同一台机器的不同客户端

    如果我打开我正在使用的同一浏览器 例如 Firefox 的新选项卡 或窗口 那么服务器将把它视为同一个客户端 但是 如果我从不同的浏览器 例如 IE 打开相同的 URL 则服务器无法将其识别为同一个客户端 那么 服务器如何在内部识别客户端呢
  • 修改 ReSharper 中的关闭警告

    我希望有人可以向我解释这段代码中可能会发生什么不好的事情 这会导致 ReSharper 发出 访问修改的闭包 警告 bool result true foreach string key in keys TakeWhile key gt r
  • 使用 Maven Cargo 插件将 Web 应用程序部署到外部 glassfish4 实例

    我正在尝试使用货物部署应用程序 这是它的配置
  • 在 Chrome 扩展 V3 中复制到剪贴板

    我正在开发一个 chrome 扩展 V3 我想将 JS 文件中的内容复制到剪贴板 Manifest json 如下 background service worker eventPage js permissions contextMenu
  • R:使用索引矩阵从数组中提取矩阵

    我正在用 R 进行编码 并且有一个包含数据的 3 维数组 示例中的 ab 然后我有一个矩阵 其中包含第三个数组维度 idx 的索引 该矩阵具有与数组相同的行数和列数 我想使用 idx 中包含的索引从数组中提取数据 以获得与 idx 具有相同
  • 基类构造函数的使用声明

    第一眼 using用于导入特定的函数 例如using std cout到范围 但是这个using实际上将基类的所有构造函数导入到派生类中 这背后到底是什么using宣言 template lt typename T gt class Vec
  • 如何在scrollview中添加两个listview

    我在一个滚动视图中添加两个列表视图 因为我的两个列表视图都将包含数据 但我面临的问题是 当我在滚动视图中添加列表视图时 它只显示每个列表视图的一项 这是图像 XML 代码是