首页 > 其他分享 >Android开发 - HorizontalScrollView 类水平滚动超长视图使用解析

Android开发 - HorizontalScrollView 类水平滚动超长视图使用解析

时间:2024-08-19 15:39:40浏览次数:8  
标签:HorizontalScrollView 滚动 int 位置 scrollView 视图 Android

基本概念

  • HorizontalScrollView 是一个容器,它允许包含的内容水平方向滚动。如果你有一块内容(比如一张宽大的图片或一个长长的水平列表)HorizontalScrollView 能让用户通过左右滑动来查看超出屏幕的部分

基本使用

  • 布局文件(如 activity_main.xml中定义一个 HorizontalScrollView,并将其宽度设为 match_parent填满屏幕宽度,设置高度为 wrap_content适应内容的高度。然后,在 HorizontalScrollView 内部放置一个水平排列子视图(如 LinearLayout,其中包含你想要滚动的内容,例如:

    <HorizontalScrollView
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="wrap_content">
    
        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:orientation="horizontal">
    
            <!-- 这里放置需要水平滚动的内容 -->
            <!-- 可以是 TextView 或者其他布局一直叠加超出范围即可 -->
            
        </LinearLayout>
    </HorizontalScrollView>
    
    • 布局文件中的主要属性
      • android:layout_width:指定 HorizontalScrollView 的宽度。通常为 match_parent
      • android:layout_height:指定 HorizontalScrollView 的高度。通常为 wrap_content
      • android:fillViewport:设置为 true 可以使 HorizontalScrollView 填充整个视图,内容区域会被自动拉伸到视图的宽度。如果设置为 false,内容宽度不会自动拉伸
  • 若需要通过代码动态控制滚动视图:

    HorizontalScrollView scrollView = findViewById(R.id.horizontalScrollView);
    scrollView.scrollTo(100, 0); // 滚动到 x=100 位置,y=0 位置
    

主要方法

  • scrollTo(int x, int y):将 HorizontalScrollView 滚动到指定的 x 和 y 位置。这个方法会立刻滚动到指定的位置

    scrollView.scrollTo(200, 0); // 滚动到 x=200 的位置
    
  • scrollBy(int x, int y):在当前滚动位置的基础上,滚动 x 和 y 距离

    scrollView.scrollBy(50, 0); // 相对于当前滚动位置,水平滚动 50 像素
    
  • smoothScrollTo(int x, int y)平滑地滚动到指定的 x 和 y 位置。这种滚动是动画的,用户体验更流畅

    scrollView.smoothScrollTo(300, 0); // 平滑地滚动到 x=300 的位置
    
  • smoothScrollBy(int x, int y):平滑地在当前滚动位置的基础上,滚动 x 和 y 距离

    scrollView.smoothScrollBy(100, 0); // 平滑地相对当前滚动位置,水平滚动 100 像素
    

常见场景

  • 展示宽大的图片:当图片宽度超出屏幕时,可以使用 HorizontalScrollView 让用户水平滚动查看完整图片
  • 水平滚动的列表:例如,展示一个水平滚动的标签栏或水平排列的商品展示

注意事项

  • 性能大量内容时,HorizontalScrollView 可能影响性能。确保不要将太多内容放入其中,或者考虑使用更高效的布局和视图组合
  • 嵌套使用如果 HorizontalScrollView 嵌套在其他滚动视图中(如 ScrollView),确保用户滚动的体验不会混乱避免多个滚动视图之间的冲突

标签:HorizontalScrollView,滚动,int,位置,scrollView,视图,Android
From: https://www.cnblogs.com/ajunjava/p/18367410

相关文章

  • 秒开WebView?Android性能优化全攻略
    在如今的移动应用时代,用户体验的好坏直接关系到应用的成功与否。而在众多的用户体验因素中,应用的加载速度尤其重要。特别是对于使用 WebView 加载网页的应用,如果加载速度过慢,用户往往会产生不满,从而流失。因此,实现“秒开”WebView成为了开发者必须面对的一项挑战。本文将深......
  • Android usb广播 ACTION_USB_DEVICE_ATTACHED流程源码分析
    整体流程图大概意思就是UsbHostManager启动监控线程,monitorUsbHostBus会调用usb_host_run函数(使用inotify来监听USB设备的插拔)不停的读取bus总线,读取到以后,当1、设备插入:发送广播ACTION_USB_DEVICE_ATTACHED2、设备拔出:发送广播ACTION_USB_DEVICE_DETACHED本篇只分析插入......
  • 高德地图SDK Android版开发 6 显示覆盖物
    高德地图SDKAndroid版开发6显示覆盖物前言地图类中覆盖物的接口覆盖物类Marker示例Polyline示例Polygon示例Arc示例Circle示例移除示例效果图Marker的更多属性常用属性交互动画其它属性折线的更多属性常用属性其它属性多边形的更多属性常用属性其它属性Arc的更多......
  • 【Android驱动12】Modem编译和sim卡配置检测过程
    一,Modem编译1.1查看ReleseNote发现需要查看"Build_Configure_Modem_MOLY"这张表,解压MT67xx_(xxx)_MOLY.LR9.W1444.MD.LWTG.MP.Vx.tar.gz到某文件,并在make目录下查看支持的配置信息1.2执行的命令,开始编译modem,则是./make.sh"SM67xx(Lxx_xxx).mak"new1.3执行perl......
  • Android 13.0 recovery页面旋转180度问题的解决方案
    1.前言在13.0的系统rom定制化开发工作中,在系统中recovery的页面也是相关重要的一部分,在系统recoveryota升级等功能,都是需要recovery功能的,在某些产品定制化中在recovery的时候,发现居然旋转了180度,接下来分析下recovery关于屏幕显示方向的相关源码,来修改这个功能2.recovery......
  • 基于flask+vue框架的基于Android的校园公益管理APP小程序端[开题+论文+程序]-计算机毕
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景在当今社会,随着教育理念的进步和青年学生社会责任感的增强,校园公益活动已成为培养学生综合素质、促进社会和谐的重要途径。然而,传统的公益......
  • 免费的GA/T1400视图库平台Easy1400软件又迭代出新版本了!
    自从年初发布了这款免费的GA1400视图库平台https://www.easydarwin.org/sceneplatform/156.html,本来就是想做一做能给大家差不多能用就行了,没成想总是忍不住要改一改、优化优化,于是又经过了几个月的优化,以及用户反馈的收集,今天更新迭代发布出最新版本的免费GA1400平台:最新版优化......
  • Ruby模板引擎:构建动态视图的艺术
    标题:Ruby模板引擎:构建动态视图的艺术在RubyonRails的世界里,模板引擎是构建动态网页的基石。它们允许开发者将服务器端的逻辑嵌入到HTML中,实现数据的动态展示。本文将深入探讨Ruby中几种常用的模板引擎,包括ERB、Haml和Slim,分析它们的特色、优缺点,并指导如何在项目中做出选......
  • Android MTP流程
    概要本文的目的是介绍Android系统中MTP的一些相关知识。主要的内容包括:第1部分MTP简介      对Mtp协议进行简单的介绍。第2部分MTP框架      介绍Android系统下MTP的框架。第3部分MTP启动流程      详细分析MTP服务的启动流程,包括Java层,......
  • 【Java毕设选题推荐】基于SpringBoot的springboot基于Android的房屋租赁App
    前言:我是IT源码社,从事计算机开发行业数年,专注Java领域,专业提供程序设计开发、源码分享、技术指导讲解、定制和毕业设计服务......