Android的ScrollView简单使用实例(附Demo)

2023-11-02


 目录

 1.垂直滚动:Scroll 

2.水平滚动:HorizontalScrollView


Demo地址:https://github.com/zGuangYuan/Androidstudio_example  

  • 垂直滚动:Scroll

  • 水平滚动:HorizontalScrollView 

ScrollView称为滚动视图,是当在一个屏幕的像素显示不下的时候,可以采用滑动的方式,显示在UI上


 1.垂直滚动:Scroll 

新建一个应用程序:

在MainActivity的布局文件上做个实验,现在设置了按钮1和按钮2后还剩下一些空位:

再设置一个按钮3让他超出屏幕之外:

现在去运行程序,是滑动不了, 看不到按钮3的。

应该如何设置呢? 


 1.改变这个布局文件的根布局:把根布局改成:ScrollView

注意:ScrollView的子元素只能有一个,所以得增加一个LinearLayout布局,把其他按键放在这个LinearLayout中,那么ScrollViewd的子元素就只有一个LinearLayout了,而LinearLayout的子元素不限制。

代码如下:

<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:padding="10dp">
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical"
        >
        <Button
            android:id="@+id/IVButton_Id"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="跳转到ImageView"
            android:textSize="20dp"
            android:textAllCaps="false"/>
        <Button
            android:id="@+id/LVButton_Id"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="跳转到ListView"
            android:textSize="20dp"
            android:textAllCaps="false"/>
        <Button
            android:id="@+id/GVButton_Id"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="跳转到GridView"
            android:textSize="20dp"
            android:textAllCaps="false"/>

        <Button
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="按钮1"
            android:textSize="20dp"
            android:textAllCaps="false"
            android:layout_marginTop="100dp"/>
        <Button
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="按钮2"
            android:textSize="20dp"
            android:textAllCaps="false"
            android:layout_marginTop="100dp"/>
        <Button
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="按钮3"
            android:textSize="20dp"
            android:textAllCaps="false"
            android:layout_marginTop="300dp"/>
    </LinearLayout>

</ScrollView>

运行程序,现在就可以向下滚动,看到按钮3了:


2.水平滚动:HorizontalScrollView

在LinearLayout里新建一个HorizontalScrollView,同样他的子元素只能有一个

 所以在HorizontalScrollView布局中再加一个子布局LinearLayout,且LinearLayout为水平方向:

代码如下:

<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:padding="10dp">
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical"
        >
        <Button
            android:id="@+id/IVButton_Id"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="跳转到ImageView"
            android:textSize="20dp"
            android:textAllCaps="false"/>
        <Button
            android:id="@+id/LVButton_Id"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="跳转到ListView"
            android:textSize="20dp"
            android:textAllCaps="false"/>
        <Button
            android:id="@+id/GVButton_Id"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="跳转到GridView"
            android:textSize="20dp"
            android:textAllCaps="false"/>

        <Button
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="按钮1"
            android:textSize="20dp"
            android:textAllCaps="false"
            android:layout_marginTop="100dp"/>
        <Button
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="按钮2"
            android:textSize="20dp"
            android:textAllCaps="false"
            android:layout_marginTop="160dp"/>
        <HorizontalScrollView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content">
            <LinearLayout
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:orientation="horizontal">
                <Button
                    android:layout_width="200dp"
                    android:layout_height="300dp"
                    android:text="按钮3" />
                <Button
                    android:layout_width="200dp"
                    android:layout_height="300dp"
                    android:text="按钮4" />
            </LinearLayout>
        </HorizontalScrollView>

    </LinearLayout>

</ScrollView>

 运行应用程序,因为外面还嵌套了一层ScrollView所以能垂直滚动和水平滚动:


 

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

Android的ScrollView简单使用实例(附Demo) 的相关文章

  • 餐馆(餐馆有n张桌子,每张桌子有一个参数a 可容纳的最大人数; 有m批客人,每批客人有两个参数:b人数,c预计消费金额。 不允许拼桌的情况下,选择其中一部分客人,使得总预计消费金额最大)

    餐馆 某餐馆有n张桌子 每张桌子有一个参数 a 可容纳的最大人数 有m批客人 每批客人有两个参数 b人数 c预计消费金额 在不允许拼桌的情况下 请实现一个算法选择其中一部分客人 使得总预计消费金额最大 输入描述 输入包括m 2行 第一行两个
  • (手工)【sqli-labs42、43】POST注入、堆叠注入、错误回显、字符型注入

    目录 一 推荐 二 手工 SQL注入基本步骤 三 Less42 POST Error based String Stacked 3 1 简介 堆叠注入 错误回显 字符型注入 3 1 第一步 注入点测试 3 3 第二步 分析过滤 3 4 第三
  • 微软华裔科学家和他们的又一次冲动

    站在放映着自己照片的大屏幕前 对着现场的300人 西装革履的李世鹏有点紧张 发言稿是事先写好的 但他时不时中断几秒 好像忘了词儿 金山CEO张宏江揶揄瞬间转换身份的他 有点做作 微软门徒 李世鹏 在一幅拍摄于2001年的照片上 李世鹏与比尔
  • VsCode必备插件

    open in browser 安装浏览器插件 用于访问html页面 在 扩展栏 的搜索框中输入 open in browser 使用 Alt B 使用默认浏览器打开当前 html 页面 或 Shift Alt B 选择其他浏览器 Vetu
  • 【第十三讲】TMS320F28335开发板之DMA模块

    直接存储器访问 DMA 模块 一 内存与外设进行数据交换的方式 中断方式 每传输一次数据 就必须经历中断处理的全部步骤 而且一般需要借助CPU内部的寄存器作为中介 也就是说CPU需要从来源把每一片段的资料复制到暂存器 然后把它们再次写回到新
  • Vue 组件基础

    VUE 一 开发工具 VUE开发环境个人推荐使用VS code 然后安装特定的插件即可开发 可用插件如下 Vetur 语法高亮 智能感知 Emmet等 EsLint 语法纠错 Auto Close Tag 自动闭合HTML XML标签 Au
  • kibana常见启动报错

    环境 Ubuntu16 04 报错1 连接elasticsearch kibana启动报错 报错信息 Status changed from uninitialized to green Ready log 08 29 01 886 err
  • ModelSim的入门仿真步骤(图文干货)

    ModelSim仿真分为以下6个主要步骤 1 新建工程 2 新建或导入工程文件 3 文档编译 4 开始仿真 5 添加仿真波形 6 调整仿真时间 1 新建工程 点击左上角 File Project 弹出如下界面 在 Project Name
  • qt提升控件之后,编译报错

    引言 自定义的控件 在ui文件中将控件提升为自定义的控件 提升的时候没有指明提升的头文件的相对路径或者绝对路径 导致编译的时候无法找到相应的头文件 解决方法 1 在被提升的类的头文件前添加本机电脑所在的相对路径 2 在被提升的类的头文件前添
  • leveldb常见问题以及性能优化点

    本篇是leveldb最后一篇 这里主要把技术核心点 性能提升点或者面试可能会被问到进行总结 一 常见问题 1 leveldb key value内存 内存中保存的是所有key value吗 答 不是 搜索顺序 memtable immtab
  • 利用MATLAB中的newrb函数进行函数逼近

    RBF函数在神经网络控制中较为常见 MATLAB中早已集成了一个newrb的函数 在一些场景下使用起来还比较方便 尤其是涉及到进行函数逼近的时候 参考链接 http blog sina com cn s blog 9b8d0abd0101o
  • Android Studio连接自带模拟器失败怎么办?强烈建议使用第三方模拟器(含各类模拟器下载地址)

    学习安卓开发的小伙伴必然会碰到模拟器的启动问题 就算成功启动Android Studio自带的模拟器 使用起来也是十分缓慢 有时候卡起来是真想骂娘 服了他个老六 那么这个时候 如果有一个第三方模拟器 不仅简单好用 无需配置 而且美观快速零卡
  • 华为存储特性

    华为存储特性 1 SmartPartition SmartPartition是一种性能特性 根据不同业务特点分配存储系统的缓存资源来满足不同应用系统的服务质量要求 由于单个存储系统要面对的应用数量急剧增加 且各业务应用之间的I O特征不同
  • Android-第五节Menu菜单详解

    目录 一 Menu背景 二 Menu使用步骤 1 创建menu 2 设计menu 3 重写menu逻辑代码 4 运行效果 一 Menu背景 手机毕竟和电脑不同 它的屏幕空间非常有限 因此充分地利用屏幕空间在手机界面设计中就显得非常重要了 如
  • STM32 使用TIM2_CH1(PA15) 输出10K PWM信号

    PA15 gt TIM2 Remap CH1 1 apb init RCC APB1PeriphClockCmd RCC APB1Periph TIM2 ENABLE RCC APB2PeriphClockCmd RCC APB2Perip
  • JMM java内存模型

    java内存模型 即 java memory model 它定义了主存 工作内存抽象概念 底层对应着 CPU 寄存器 缓存 硬件内存 CPU 指令优化等 JMM 体现在以下几个方面 原子性 保证指令不会受到线程上下文切换的影响 可见性 保证
  • android 安装命令,【转载】android中APK包的安装以及adb命令的使用

    1 首先将 android sdk platform tools添加都path路径下 2 在控制台窗口中进入到你apk包所在的目录中 3 输入 abd unremount 第一次使用该命令的时候需要获取该命令的操作权限 4 打开androi

随机推荐

  • Filter、Interceptor的使用

    Filter Interceptor的使用 一 Filter Interceptor的区别 1 1 过滤器 Filter 1 2 拦截器 Interceptor 二 Filter Interceptor的使用 2 1 Filter 的实现步
  • 微信临时文件wxfile://tmp文件处理,微信小程序最新获取头像和昵称

    欢迎点击领取 前端面试题进阶指南 前端登顶之巅 最全面的前端知识点梳理总结 分享一个使用比较久的 技术栈 taro框架 vue3版本 解决在微信小程序获取微信头像时控制台报错 找不着wxfile tmp 文件路径 失败 原因如下 因为微信提
  • JS合并数组对象中key相同的数据(将数组里某个属性相同的对象合并成一个数组)

    将数组里某个属性相同的对象合并成一个数组 原数组如下 let resData name 住院医疗最高报销 tagName 医疗 insuredAmount 6000 name 身故赔付 tagName 寿险 insuredAmount 36
  • 80后创业故事之:兄弟散伙,创业失败

    在开始今天的故事之前 首先感谢这么多朋友关注我的文章 实在让我受宠若惊 我定倍加珍惜大家对我的支持 同时我也留意到这些天有一些朋友对我的故事也提出了一些质疑 怀疑是否杜撰 编造或者太过夸大其辞 本来我想出说一箩筐的理由来证明我所说的都是我自
  • AIGC参数量节节攀升,对存储带来的挑战如何解决?

    引言 近期 AIGC 相关产品如同雨后春笋一般不断涌现 但在技术层面 大家普遍的关注点更多集中在性能方面 却经常忽略了存储对推理和训练效率的影响 以及 AIGC 内容可能带来的合规风险 我们特邀腾讯云存储的产品负责人 崔剑老师和益企研究院创
  • 性能自动化+locust

    性能自动化 locust 仅作为个人笔记 如有雷同 请联系删除 性能测试基础 1 性能测试相关概念 性能测试 测试软件的性能表现 考量软件运行的如何 一般关注时间 效率 资源占用等情况 响应时间 应用系统从用户发出请求开始 到客户端接收到所
  • 你想知道的大数据知识都在这里

    欢迎大家前往腾讯云 社区 获取更多腾讯海量技术实践干货哦 毋庸置疑 现如今是属于大数据 Big Data 的 革命性的时代 从社交媒体到企业 每时每刻都在产生大量的数据 无所作为 从而把这样的宝藏白白浪费掉是及其愚蠢的 企业已经学会了收集大
  • OV7670配置和调试总结

    废话后面说 先直接上OV7670寄存器的配置部分 const uint8 t OV7670 Reg 2 Frame Rate Adjustment for 24Mhz input clock 30fps PCLK 24MHz 0x11 0x
  • tomcat部署时注意修改目录路径

    原文 https blog csdn net qq 15676547 article details 81208991 每次发布war包 都会把附件给覆盖了 为了解决这个问题 我们需要把目录给修改到别处 方法如下
  • SSH远程访问AWS EC2

    步骤1 启动Amazon EC2实例 视频演示 启动AWS EC2实例 导航到Amazon EC2并开始启动新实例 在本教程中 我将使用Amazon Linux 2 AMI HVM 操作系统 创建一个没有规则的新安全组 例如MediumSG
  • 利用Selenium(爬虫)爬取物流信息,并用邮件提醒自己物流更新

    受疫情影响 快递无法全面复工 商家在过年期间又压了一堆未发货的订单 现在下单一个快递 商家迟迟无法发货 就算发了货 物流也慢的跟蜗牛一样 每天就是打开淘宝看物流信息 物流信息又没更新 关淘宝 为了节省这些时间 不在焦虑中度过 写了这么一个功
  • JAVA IO前言Comparable & Comparator & 序列化Serializable & 反序列化Deserializable

    Comparable可认为是内比较器 可比较的 是接口类 类参数为泛型对象T 通常对比的类本身需实现继承Comparable接口类的唯一方法compareTo T o 对比指标为类的一个或多个属性 对比类与Comparable接口类耦合性强
  • SQL基础教程 数据库和SQL

    目录 第一章 数据库和SQL 1 1 数据库是什么 一 数据库和数据库管理系统 二 DBMS的种类 1 2 数据库的结构 一 RDBMS的从常见系统结构 二 表的结构 1 3 SQL概要 一 SQL语句及其种类 二 SQL的基本书写规则 1
  • tomcat的Context配置项docBase和path的区别

    1 tomcat的config目录下的server xml中Context配置项docBase和path的区别如下 1 docBase是指项目ROOT所在路径 2 path是指该项目访问的路径 如
  • 9个用于本地存储JavaScript库

    The HTML5 Local Storage API part of Web Storage has excellent browser support and is being used in more and more applica
  • mysql 5.7二进制包安装

    1 上传安装安装包mysql 5 7 14 linux glibc2 5 x86 64 tar gz到 home mysqlintall目录并解压 2 建立用户mysql和组 groupadd mysql useradd r g mysql
  • Linux系统与管理 - (五)应用安装与管理❤

    自说 学习路径 RPM软件包 YUM安装 RPM与YUM的优劣 自说 在使用Linux系统的过程中我们经常需要安装和更新系统及服务 在Linux系统中软件的安装方式和模式是什么 接下来针对安装及管理作此描述 学习路径 Linux系统与管理
  • Element-Ui组件 单选框(Radio) 修改点击激活时的文本颜色,填充色和边框色

    Element Ui组件 单选框 Radio 修改点击激活时的文本颜色 填充色和边框色 官方组件显示的效果 需要的效果 直接添加样式 选中后的字体颜色 el radio input is checked el radio label col
  • 双指针、前缀和、二分、差分、递推

    维生素C吃多了会上火 个人CSDN博文目录 2022蓝桥杯 目录 前缀和 双指针 前缀和 激光炸弹 k倍区间 双指针 统计日志
  • Android的ScrollView简单使用实例(附Demo)

    目录 1 垂直滚动 Scroll 2 水平滚动 HorizontalScrollView Demo地址 https github com zGuangYuan Androidstudio example 垂直滚动 Scroll 水平滚动 H