禁用列表视图的滚动并启用整个布局

2023-11-23

您好,我目前正在开发一个 Android 应用程序,它在主活动中有两个列表视图。我想要的是禁用两个列表的滚动并仅允许整个页面滚动,有什么方法可以帮助... 。 我的代码 包com.example.listviewdemo;

 import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.MotionEvent;
 import android.view.View;
 import android.widget.AdapterView;
 import android.widget.ArrayAdapter;
 import android.widget.ListView;
 import android.widget.Toast;

public class MainActivity extends Activity {

ListView list,list2;
String[] name={"Happy","always","try","hard","you will","get it!","Believe","in","God","everything","will","work well!","Believe","in","God","everything","will","work well!"};
String[] name2={"Believe","in","God","everything","will","work well!","Believe","in","God","everything","will","work well!"};
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    list = (ListView) findViewById(R.id.listview);
    list2 = (ListView) findViewById(R.id.listview2);
    list.setAdapter(new ArrayAdapter<String>(MainActivity.this,android.R.layout.simple_list_item_1,name));
  list2.setAdapter(new ArrayAdapter<String>(MainActivity.this,android.R.layout.simple_list_item_1,name2));



    list.setOnItemClickListener(new AdapterView.OnItemClickListener() {

        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position,
                long id) {
            // TODO Auto-generated method stub

            Toast.makeText(getBaseContext(), name [position],Toast.LENGTH_SHORT).show();
        }
    });

list2.setOnItemClickListener(new AdapterView.OnItemClickListener() {

        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position,
                long id) {
            // TODO Auto-generated method stub

            Toast.makeText(getBaseContext(), name2 [position],Toast.LENGTH_SHORT).show();
        }
    });   
}   
  }

我的xml代码是:

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/LinearLayout1"
     android:layout_width="match_parent"
    android:layout_height="match_parent"
     android:orientation="vertical"
     tools:context="${relativePackage}.${activityClass}" >
    <TextView
    android:id="@+id/text_id1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
  android:text="@string/str1" />
   <ListView
    android:id="@+id/listview"
    android:layout_width="match_parent"
     android:layout_height="wrap_content"
    />
    <TextView
      android:id="@+id/text_id2"
     android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:text="@string/str2" 

     />

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

你可以试试这个。

对于 xml 部分,执行以下操作:

将整个布局数据放在一个 Scroll View 下,例如:

    <ScrollView
        android:id="@+id/scrollViewId"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:fillViewport="true" >             

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

                <ListView
                    android:id="@+id/list"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content" /> // SAY YOUR FIRST LIST VIEW:

                <ListView
                    android:id="@+id/list"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content" /> // SAY YOUR SECONDLIST VIEW:

                 // Add your other views as per requirement....

        </LinearLayout>

    </ScrollView>

现在在 JAVA 类中执行以下操作...

只需在将适配器设置为列表视图后将此自定义方法添加到您的代码中即可:

setListViewHeightBasedOnChildren(listview)

例如:

      list = (ListView) findViewById(R.id.listview);
      list.setAdapter(new ArrayAdapter<String> 
                      (MainActivity.this,android.R.layout.simple_list_item_1,name));
      setListViewHeightBasedOnChildren(list);

对第二个列表视图也执行相同的操作。

这是 setListViewHeightBasedOnChildren 方法的主体

   public static void setListViewHeightBasedOnChildren(ListView listView) 
{
    ListAdapter listAdapter = listView.getAdapter();
    if (listAdapter == null)
        return;

    int desiredWidth = MeasureSpec.makeMeasureSpec(listView.getWidth(), MeasureSpec.UNSPECIFIED);
    int totalHeight=0;
    View view = null;

    for (int i = 0; i < listAdapter.getCount(); i++) 
    {
        view = listAdapter.getView(i, view, listView);

        if (i == 0)
            view.setLayoutParams(new ViewGroup.LayoutParams(desiredWidth,  
                                      LayoutParams.MATCH_PARENT));

        view.measure(desiredWidth, MeasureSpec.UNSPECIFIED);
        totalHeight += view.getMeasuredHeight();

    }

    ViewGroup.LayoutParams params = listView.getLayoutParams();
    params.height = totalHeight + ((listView.getDividerHeight()) * (listAdapter.getCount()));

    listView.setLayoutParams(params);
    listView.requestLayout();

}

希望对你有帮助。

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

禁用列表视图的滚动并启用整个布局 的相关文章

  • Android-如何将 android.net.Uri 对象转换为 java.net.URI 对象?

    我正在尝试获得一个FileInputStream用户从图片库中选择的图像上的对象 这是安卓URI由返回android provider MediaStore Images Media INTERNAL CONTENT URI content
  • Android主线程的IO操作

    我的问题有两个 是否建议在 Android 的主线程上进行 IO 操作 或者它是否有可能导致我的应用程序崩溃 如果在主线程上执行 IO 操作不理想 我可以使用哪些其他框架 以便当我的应用程序加载时它可以执行一些基本的 IO 文件读取并将值存
  • 在 Android 上使用 AT 命令与调制解调器对话

    我试图与三星 Galaxy s2 plus 和华为 p1 xl u9200 调制解调器发送 AT 命令 但无法得到任何结果 我使用 adb shell 发送命令并使用 logcat 查看日志 在三星 当我执行 cat 时 proc tty
  • 如何在android中显示对话框之外的图像?

    我试图在对话框片段的顶部显示配置文件图像 一半在图像之外 我在下面附加了示例对话框 就像那样 并尝试了旧 Stackoverflow 解决方案中的所有 FrameLayout 协作 但我无法存档此内容 请给我正确的解决方案 谢谢 Updat
  • Android 中的 Fragment-Fragment 通信

    我在Android编程方面处于初级水平 所以我需要你真诚的帮助 请任何人帮助我 我正在尝试使用片段构建滑动用户界面 所以我真正的疑问是 我有一个Fragment say FragmentA 它有一个TextView and Button在其
  • 覆盖 Android 中的电源按钮

    我正在开发一个应用程序 其中我需要在按下电源按钮时执行一个操作 但不幸的是我无法处理按下电源按钮时的操作 我尝试使用 onKeyDown 和dispatchKeyEvent 方法 但似乎没有任何效果 任何人都可以建议我解决这个问题的任何其他
  • ADB TCPIP 连接问题

    我有两台 Galaxy S3 其中一个已扎根 另一个则未扎根 因此 当我尝试通过本地网络连接它们时 计算机可以看到已root的计算机 但是正常的就卡在tcpip这一步了 所以 我写 adb tcpip 5555 It says restar
  • Android -room 持久库 - DAO 调用是异步的,因此如何获取回调?

    从我读到的Room 不允许您在主线程上发出数据库查询 因为可能会导致主线程延迟 所以想象一下我正在尝试更新 UI 主线程上的文本视图 其中一些数据我将如何得到回调 让我给你举个例子 想象一下 我想将我的业务模型数据存储到一个名为 事件 的对
  • MIUI 权限被拒绝活动 KeyguardLocked

    当应用程序处于后台且屏幕被锁定时 我无法启动活动 没有异常或警告 只是不调用 onCreate 我一直在与这个问题作斗争 我想我终于找到了它的根源 日志中有一行 D com android server am ExtraActivityMa
  • 如何使用 SharedPreferences 保存多个值?

    我正在开发一个字典应用程序 在我的应用程序中 我假设用户想要保存最喜欢的单词 我决定使用共享首选项保存这些值 我知道 SQLite 和文件更好 但我坚持使用 SharedPreferences 所以继续使用它 下面是我的代码 Overrid
  • Android 上的 MIDI:Java 和/或 AIR 库

    一段时间以来 我一直在考虑在 iPad 上 重新 构建一个应用程序 其中我将使用 Objective C 和DSMI http dsmi tobw net 将 MIDI 信号发送到主机 这还不错 我的意思是 除了实际编写应用程序之外 现在我
  • 如何将 Android 添加到 Phonegap 平台版本 3

    经过大量挖掘 我相信这个问题 https stackoverflow com questions 18423444 phonegap 3 doesnt work with andriod studio与我没有添加任何用于构建phonegap
  • 移动设备上的 TensorFlow(Android、iOS、Windows Phone)

    我目前正在寻找不同的深度学习框架 特别是用于训练和部署卷积神经网络 要求是 它可以在带有 GPU 的普通 PC 上进行训练 但训练后的模型必须部署在三个主要的移动操作系统上 即 Android iOS 和 Windows Phone Ten
  • 如何通过 Android 按钮单击运行单独的应用程序

    我尝试在 Android 应用程序中添加两个按钮 以从单独的两个应用程序订单系统和库存系统中选择一个应用程序 如图所示 我已将这两个应用程序实现为两个单独的 Android 项目 当我尝试运行此应用程序时 它会出现直到正确选择窗口 但是当按
  • 使用 Play Integrity API 时,Firebase 电话身份验证会出现缺少客户端标识符错误

    使用 Firebase 电话身份验证注册 登录时 身份验证流程始终会启动 reCAPTCHA 流程 并在返回应用程序后发出missing client identifier error 我的设置之前适用于设备验证 安全网络 API 除了我的
  • Unity c# 四元数:将 y 轴与 z 轴交换

    我需要旋转一个对象以相对于现实世界进行精确旋转 因此调用Input gyro attitude返回表示设备位置的四元数 另一方面 这迫使我根据这个四元数作为默认旋转来计算每个旋转 将某些对象设置为朝上的简单方法如下 Vector3 up I
  • 当目标小于 Android O 时,如何在 Android O 上创建快捷方式?

    背景 Android O 对快捷方式的工作方式进行了各种更改 https developer android com preview behavior changes html as https developer android com
  • Android 标记如何实现拖放?

    你好 我正在 Android 中开发 MapView 应用程序 我有三个标记 我希望稍后能够使用 Google Map API getlocation function 为了尝试一下 我想使用拖放功能移动标记 然后检查位置 任何人都可以通过
  • ECDH使用Android KeyStore生成私钥

    我正在尝试使用 Android KeyStore Provider 生成的私有文件在 Android 中实现 ECDH public byte ecdh PublicKey otherPubKey throws Exception try
  • Android-dispatchTouchEvent 给了我一个 StackOverflowError

    这里我有一个带有 setOnTouchListener 的 ViewFlipper 它工作得很好 然后我膨胀 ReLayNewsItem 然后将其添加到 ViewFlipper 现在我希望 WebView web 监听触摸事件并将它们传递给

随机推荐

  • 积分推广

    在整数提升方面 什么时候有符号整数无法表示原始类型的所有值 来自文本 K R C 编程语言 第二版 p 174 A 6 1 积分推广 字符 短整数或整数位域 无论是否有符号 或枚举类型的对象都可以在 凡是可以使用整数的表达式 如果一个int
  • 进行网络通话的最佳地点

    网络通话 static func getProfile parameters String AnyObject onComplete String AnyObject gt var requiredData String AnyObject
  • Namenode HA(UnknownHostException:nameservice1)

    我们通过 Cloudera Manager 启用 Namenode 高可用性 使用 Cloudera Manager gt gt HDFS gt gt 操作 gt 启用高可用性 gt gt 选定的备用名称节点和日志节点 然后名称服务1 整个
  • Wor2vec 微调

    我需要微调我的 word2vec 模型 我有两个数据集 data1 and data2 到目前为止我所做的是 model gensim models Word2Vec data1 size size v window size w min
  • 使用 jQuery 迭代 JavaScript 对象的属性

    是否有一种 jQuery 方法可以对对象的成员执行迭代 例如 for var member in obj 我只是不喜欢这个for从我可爱的 jQuery 符号中脱颖而出 each name John lang JS function i n
  • 使用 lm(poly) 获取公式系数[重复]

    这个问题在这里已经有答案了 我正在尝试使用 lm poly 获得某些点的多项式回归 但对它返回的回归公式系数有一些疑问 像这样的样本 x seq 1 100 y x 2 3 x 7 fit lm y poly x 2 结果是 lm form
  • EPOLLRDHUP 不可靠

    我正在通过客户端 服务器 TCP 连接使用非阻塞读 写epoll wait 问题是 我无法使用以下方法可靠地检测 对等关闭连接 事件EPOLLRDHUP旗帜 经常会发生标志未设置的情况 客户端使用close 大多数时候 服务器从epoll
  • 如何在 CSS 选择器或 jQuery 中处理 XML 命名空间?

    我使用 jQuery 来解析 RSS 提要 我可以使用 AJAX 成功获取 RSS 提要 get podcast xml function data xml data xml 现在我可以通过使用获取播客的标题xml find channel
  • data.table fread如何忽略空行[重复]

    这个问题在这里已经有答案了 看起来如果文件中的第二行为空 则不会读取列名 我已经使用过文档中的 header skip 等开关 但无法使其工作 如果我的文件中的第二行为空 如何忽略这个事实并仍然将第一行读取为列名 第二行是空的 gt fre
  • 为什么使用 sys.path.append(path) 而不是 sys.path.insert(1, path)?

    Edit 根据 Ulf Rompe 的评论 使用 1 而不是 0 很重要 否则你会打破sys path 我已经做Python有一段时间了 一年多了 我总是很困惑为什么人们推荐你使用sys path append 代替sys path ins
  • 将应用程序更新至 iOS6

    在苹果开发者论坛上未能找到对此问题的准确答复 与其他 Apple 开发人员一样 我将升级我们的应用程序以支持 iOS6 设备 我已经下载了支持iOS6 SDK的XCode 4 5 我知道我无法使用此 XCode 版本将应用程序的版本提交到应
  • 使用 Java API 从 Elasticsearch 获取所有记录

    我正在尝试使用 Java API 从 Elasticsearch 获取所有记录 但我收到以下错误 n Wild Thing localhost 9300 索引 data read search phase dfs 嵌套 QueryPhase
  • python中“import a.b as b”和“from a import b”有什么区别[重复]

    这个问题在这里已经有答案了 我一直用from a import b但最近一个工作团队决定将一个模块移动到一个新的命名空间中 并发出警告通知 告诉人们更换import b with import a b as b 我从来没有用过import
  • SQL Server 如何处理超时请求?

    假设我使用 C 运行一个长时间运行的 SQL Server 存储过程 假设 30 分钟 进一步假设我在 C 中的查询上设置了 1 小时的超时期限 这样如果出于某种原因该 SP 花费的时间比预期长 我最终不会垄断数据库 最后 假设该存储过程中
  • 在...中找不到 JNI_OnLoad 跳过 init

    我在过去一天左右就收到了这条消息 到目前为止还没有造成任何问题 我早些时候让我的代码与我的本机库一起运行 但今天我添加了一些新功能 但它再次无法工作 LogCat 中没有显示任何错误 但我的程序只是在我的设备上立即打开和关闭 没有任何消息表
  • Jquery 移动粘性页脚

    我想要 Jquery Mobile 中的页脚 它不是固定的 但始终位于页面底部 像这样 http ryanfait com sticky footer 但在 JQuery Mobile 中 不像标准的 JQuery Mobile 固定页脚
  • 如何捕获滚动事件?

    我想实现无限滚动 下面是我的布局的简短形式 由于我有一些元素相对定位 因此 javascript 滚动事件不会触发 如何解决这个问题以便触发滚动事件并实现无限滚动 我的主要布局是 div div class wrapper div div
  • 如何获取站点的物理路径属性

    当我仅列出具有默认格式的站点时 它会显示物理路径 PS C Windows system32 gt sm Get IISServerManager PS C Windows system32 gt sm Sites Name ID Stat
  • 如何获取 WebKit 中所有受支持的 CSS 属性?

    在 Firefox Opera 和 IE 中我可以通过以下方式获取它们 gt gt for k in document body style console log k gt opacity background height textAl
  • 禁用列表视图的滚动并启用整个布局

    您好 我目前正在开发一个 Android 应用程序 它在主活动中有两个列表视图 我想要的是禁用两个列表的滚动并仅允许整个页面滚动 有什么方法可以帮助 我的代码 包com example listviewdemo import android