本文将介绍一种通过代码控制ListView上下滚动的方法。 先上图: ? 按下按钮会触发ListView滚动或停止。...; import android.os.Handler; import android.os.Message; import android.view.View; import android.view.View.OnClickListener...; import android.widget.Button; import android.widget.ListView; public class MainActivity extends Activity...(-1, 10); handler.postDelayed(run_scroll_down, 10); } }; } 实现ListView位置变动的是smoothScrollBy方法。...总结 以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对ZaLou.Cn的支持。如果你想了解更多相关内容请查看下面相关链接
如果在 web 开发时,是需要容器加上样式 overflow: auto; 要想用 Flutter 实现,其实也是很简单的,因为 Flutter 为我们提供了 ListView 组件。...ListView 主要有以下几种使用方式 ListView ListView.builder ListView.separated ListView.custom ListView ListView 是最简单直接的方式...跟 ListView 不同的点在于,这是懒加载的,假如有 1000 个列表,初始渲染时并不会所有都渲染,而只会特定数量的 item ,这对于性能和用户体验来说,是很好的提升。...SliverChildListDelegate 接收跟 ListView 一样的 children ,而 SliverChildBuilderDelegate 接收跟 ListView.builder...正常来说,前面三个已经可以满足我们的日常使用需求了,无需自定义。 总结,上面主要讨论了 ListView 的几个构造函数及用法,讨论如何实现常见的滚动列表。
概述 由于项目需要,我们需要一个 可以横向滚动的,又可以竖向滚动的 表格。而且又要考虑大数据量(行)的展示视图。经过几天的研究终于搞定,做了一个演示。 效果图: !...设计图 第一列,是固定的,比如我们第一列一般显示编号序号 其它列,可滚动 在其它列滚动时,列头(header)也随之滚动 ? 思路 上下滚动直接使用 listView来实现。...ListView里的每行(row)分为 两部分,不滚动的和可滚动的区域。比如本demo的第一列,就是静态的。而后面的所有列都是可以滚动的。 2.2....捕获 数据行 区 的控件(该控件其实就是ListView控件 )的OnTouch事件,不处理,同样分发给 “列头里的 可滚动部分的控件”。...每次 滚动后,都通知给 观察者。观察者再通知给它的订阅者(那些需要同时滚动的行里面的 滚动控件)。 3.4. 当ListView创建行时,让这些行都订阅 上一步 的观察者。
如果大家在非黑色背景下使用ListView控件时,Android默认可能在滚动ListView时这个列表控件的背景突然变成黑色。这样可能导致程序的黑色的背景和主程序的主题既不协调。...解决的方法Google在设计Android时也考虑了,在Layout的ListView中加入 android:cacheColorHint="#00000000" 的属性即可。
如果一个可滚动组件支持Sliver模型,那么该滚动可以将子组件分成多个部分,只有当子组件出现在视口中时才会去构建它。...6.1.3 SingleChildScrollView组件 是一个只能包含单一子组件的可滚动组件,其作用类似于iOS的UIScrollView组件或Android的ScrollView组件。...6.2 列表组件 6.2.1 ListView ListView,即列表组件,作用类似于Android的RecyclerView或ListView。...childrenDelegate: SliverChildListDelegate(_items), ) ) ); } } 示例效果: 如果滚动视图中出现列表嵌套的场景...分层渲染可以降低视图渲染带来的性能开销。 无论是创建组合组件还是创建自绘组件,首先需要考虑如何将复杂的布局简化,把大问题拆分成若干小问题。
一、了解ListView 在Android开发中,ListView是比较常用的控件,它以列表的形式显示具体内容,并且能够根据数据的长度自适应显示。...如果该属性设置为 true,将会显示滚动图标,并允许用户拖动该滚动图标进行快速滚动 android:listSelector setSelector(int) 指定被选中的列表项上绘制的 Drawable...总会自动滚动到底端 先从比较简单的子类ListView的使用方法开始学习,使用ListView主要有以下两种方式。...关于Module的作用不是很理解的,这里不再重复讲解了,建议回头再去看一遍之前的内容:掌握Android Studio项目结构 可以发现新建的listviewsample与app的目录结构完全相同...ListView,并通过android:entries指定了列表项数组, 该ListView还通过android:divider改变了列表项之间的分隔条。
1、Listview的属性设置,虽然我现在经常用RecyclerView,很少用Listview了,但是还是顺便写一下,以便巩固一下知识,万一以后需要呢。...android:overScrollFooter="@android:color/transparent" android:overScrollHeader="@android:color/transparent...overScrollFooter可不写,此处写了是引用的透明色) <ListView android:id="@+id/lv_listview" android:layout_width="match_parent...android:divider="#ff0000" 可以是颜色和图片 android:dividerHeight="1px" 要显示分隔线,分隔线的高度必须大于0 android:headerDividersEnabled..." 设置滚动条不显示,当然ScroollView 也同样有用 2、RecyclerView的属性设置 和ListView一样,记住 android:overScrollMode="never" 即可
可滚动组件 当组件内容超过当前显示视口(ViewPort)时,如果没有特殊处理,Flutter 就会提示 Overflow 错误,为此,Flutter 提供了多种可滚动组件,用于显示列表和长布局; 可滚动组件都直接或间接的包含一个...是 IOS 风格的滚动条,如果你是用的是 Scrollbar,那么在 IOS 平台会自动切换为 CupertinoScrollbar ViewPort 视口 在很多布局中都有 ViewPort 的概念...,在 Flutter 中,术语 ViewPort (视口) ,如无特别说明,则是指一个 Widget 的实际显示区域; 例如,一个 ListView 的显示区域的高度是 800 像素,虽然其列表项总高度可能远远超过...由于可滚动组件的默认方向一般都是沿垂直方向,所以默认情况下主轴就是指垂直方向,水平方向同理 SingleChildScrollView SingleChildScrollView 类似于 Android...,所以如果预计视口可能包含超出屏幕尺寸太多内容时,那么使用 SingleChildScrollView 将会非常昂贵(性能差),此时应该使用一些支持 Sliver 延时加载的可滚动组件,如 ListView
Flutter中的SingleChildScrollView类似于Android中的ScrollView,它只能接收一个子组件。...需要注意的是,通常SingleChildScrollView只应在期望的内容不会超过屏幕太多时使用,这是因为SingleChildScrollView不支持基于Sliver的延迟实例化模型,所以如果预计视口可能包含超出屏幕尺寸太多的内容时...,那么使用SingleChildScrollView将会非常昂贵(性能差),此时应该使用一些支持Sliver延迟加载的可滚动组件,如ListView。...为此,Flutter中提出一个Sliver(中文为”薄片“的意思)概念,如果一个可滚动组件支持Sliver模型,那么该滚动可以将子组件分成好多个”薄片“(Sliver),只有当Sliver出现在视口中时才会去构建它...可滚动组件中有很多都支持基于Sliver的延迟构建模型,如ListView、GridView,但是也有不支持该模型的,如SingleChildScrollView。
Studio 中的预览效果图 ?...> 在Android Studio 中的预览效果图 和 运行效果图 ?... 在 Android Studio 中的预览效果图 和 运行效果图 ?...View) 和多层嵌套的 Layout 支持自定义并且已经集成了很多炫酷的 Header 和 Footer 支持和ListView的同步滚动 和 RecyclerView、AppBarLayout、CoordinatorLayout...而且使用本方法的时候,Android Studio 会有预览效果,如下图: ?
那么我们要自定义的View是哪一个,明显是样式变化的ListView,因为它长的和普通的ListView不一样,“谁家的ListView顶个黑色矩形做头部” ①自定义View代码段——核心代码段 package...* 拿到ListView滚动事件 * 拿到高度变化 * 根据高度变化,设置顶部条的背景 * powered by Cpf.com. */ public class ScrollChangeHeadView...} 本段代码是核心代码段:我们在这段代码里做了最关键的三件事: 1)拿到在自定义View内部拿到ListView的滚动事件; 2)在滚动事件里面拿到矩形头部的高度变化; 3)根据矩形头部的高度变化...LinerLayout,作为顶部条的装载容器,放入一个TextView,用于显示顶部条文字。...Material Design设计奖获得者)的应用程序(笔者用的是最新版本),其顶部条的变化,我们也可以运用上面的方法,进行实现,效果是顶部条随滚动事件的发生而出现或者隐藏。
在Android 5.0 版本之前,为了方便的显示多行数据,形如QQ聊天信息主界面,最常用的选择无非是ListView控件,但是ListView控件本身就有很大的局限性和效率问题(相对于RecyclerView...控件)来说,比如说ListView只能竖向滚动显示数据,不能横向滚动显示数据,在一些特殊的需求中,ListView就无能为力了。...在Android5.0版本之后,Android官方推出了一个新的控件:RecyclerView ,完全解耦的设计使得RecyclerView比起ListView灵活了太多,应用的场合也非常广泛。...这里我用的是android studio IDE 个人感觉android studio 相比eclipse在android开放方面好,不过android studio 对电脑性能要求更加高。...那么接下来如何显示横向的滚动View呢,其实很简单:只需要在RecyclerViewActivity中加一句代码: linearLayoutManager.setOrientation(
Android Studio IDE 该codelab具有Android Studio IDE,但您可以使用其他IDE,或者从命令行运行。...您的IDE插件 Flutter和Dart插件必须为您的IDE单独安装。 除了Android Studio,Flutter和Dart插件也可用于VS Code和IntelliJ IDE。...Studio编辑器视图中查看pubspec时,单击右上角的Packages get。...当用户滚动时,ListView小部件中显示的列表将无限增长。 ListView的builder工厂构造函数允许您根据需要懒惰地构建列表视图。...实现一个有状态的小部件,为你的应用增加交互性。 用ListView和ListTiles创建一个延迟加载的无限滚动列表。 创建了一条路由并添加了在主路由和新路由之间移动的逻辑。
我的Android之路 android设置文字过期废弃中划线 使用release包查看打印日志 Android studio的Gradle里面不能打.aar包 抽奖转盘 抽完奖之后设置转盘回到原点 dialog...Android按钮文本字母大小写问题 ListView ListView属性 ListView示例(附详解+源码) android设置文字过期废弃中划线 textView.getPaint().setFlags...名称) Android studio的Gradle里面不能打.aar包 在Settings里面把下列内容取消勾选即可 抽奖转盘 抽完奖之后设置转盘回到原点 抽完奖之后设置转盘回到原点 FrameLayout...="false" ListView ListView属性 android:divider="@null" :不显示分割线 android:dividerHeight="5dp" :指定分割线的高 android...:scrollbars="none" :隐藏滚动条 ListView示例(附详解+源码)
"线性布局", "表格布局", "帧布局", "相对布局" }; // 详细内容 public static final String[] DETAIL = { "线性布局是将放入其中的组件按照垂直或水平方向来布局...,也就是控制放入其中的组件横向排列或纵向排列。"..., "表格布局与常见的表格类似,它以行、列的形式来管理放入其中的UI组件。"...// 创建一个文本框对象 text.setPadding(10, 10, 10, 10); // 设置内边距 scroller.addView(text); // 将文本框对象添加到滚动视图中...android.os.Bundle; import android.view.View; import android.widget.ArrayAdapter; import android.widget.ListView
ListView是最常用的可滚动组件之一,它可以沿一个方向线性排布所有子组件,并且它也支持基于Sliver的延迟构建模型。...Flutter中的ListView与Android中的ListView具有同等功能。...shrinkWrap 是否根据子组件的总高度来设置ListView的高度,默认为false 。当ListView在一个无边界(滚动方向上)的容器中时,shrinkWrap必须为true。...addAutomaticKeepAlives 是否将列表项(子控件)包裹在AutomaticKeepAlive组件中,包含之后列表项滑出视口时它也不会被GC。...可滚动组件的构造函数如果需要一个列表项Builder,那么通过该构造函数构建的可滚动组件通常就是支持基于Sliver的懒加载模型的,反之则不支持,其他可滚动组件亦是如此。
但是如果内容布局的LinearLayout里面加入了一个ListView,而这个ListView又充满了整个LinearLayout,这个时候LinearLayout将不可能再被touch到了,这个时候我们就需要将...="fill_parent" android:background="#e9e9e9" > <ListView android:id="@+id..." android:scrollbars="none" android:cacheColorHint="#00000000" > </ListView...左侧菜单和右侧菜单中都只是简单地放入了一个TextView用于显示一段文字,内容布局中放入了一个ListView。注意要让左侧菜单和父布局左边缘对齐,右侧菜单和父布局右边缘对齐。...*/ private BidirSlidingLayout bidirSldingLayout; /** * 在内容布局上显示的ListView */ private ListView
android.widget.FrameLayout android.widget.ScrollView 它是 FrameLayout 类的子类(这意味着您应该只放入一个子视图,该子项包含要滚动的完整内容...),允许用户垂直滚动,来展示比屏幕可显示范围更多的内容。...ListView java.lang.Object ↳ android.view.View ↳ android.view.ViewGroup ↳...ListView 是为显示较多项列表而优化的特殊控件。它能非常高效地创建、回收和显示视图,而且经过优化,能非常顺畅地滚动。...在自定义 listview 的 item 的布局的时候, 通常加上最小高度的属性, 防止高度过小导致用户点击不到。 android:minHeight="?
我们先介绍一下常用的可滚动组件(如ListView、GridView等) SingleChildScrollView SingleChildScrollView类似于Android中的ScrollView...ListView ListView是最常用的可滚动组件之一,它可以沿一个方向线性排布所有子组件,并且它也支持基于Sliver的延迟构建模型。...shrinkWrap:该属性表示是否根据子组件的总长度来设置ListView的长度,默认值为false 。默认情况下,ListView的会在滚动方向尽可能多的占用空间。...当ListView在一个无边界(滚动方向上)的容器中时,shrinkWrap必须为true。...注意:上面这些参数并非ListView特有,在本章后面介绍的其它可滚动组件也可能会拥有这些参数,它们的含义是相同的。
但是如果内容布局的LinearLayout里面加入了一个ListView,而这个ListView又充满了整个LinearLayout,这个时候LinearLayout将不可能再被touch到了,这个时候我们就需要将...touch事件注册到ListView上。...:background="#e9e9e9" <ListView android:id="@+id/contentList" android:layout_width="fill_parent"...左侧菜单和右侧菜单中都只是简单地放入了一个TextView用于显示一段文字,内容布局中放入了一个ListView。注意要让左侧菜单和父布局左边缘对齐,右侧菜单和父布局右边缘对齐。...*/ private BidirSlidingLayout bidirSldingLayout; /** * 在内容布局上显示的ListView */ private ListView contentList
领取专属 10元无门槛券
手把手带您无忧上云