android:inAnimation:设置ViewAnimator显示组件时所使用的动画。 android:outAnimation:设置ViewAnimator隐藏组件时所使用的动画。...接下来通过一个简单的示例程序来学习ViewSwitcher的使用,主要是实现Android 5.0的Launcher界面的分屏、左右滚动效果。...Launcher界面由GridView完成,创建布局文件slide_gridview.xml,代码如下: 创建GridView中每个Item的布局文件slide_gridview_item.xml,代码如下: <?...screenNo计算每个列表项的数据(如getltem(int position)方法所示)。
概述 GridView是Android的另一个列表容器,用法也跟ListView类似,它的布局是一个网格,一行可以有多个项,并且整个视图可以滚动,我们常见的应用有手机中的图库、launcher里面的应用列表...、类似微信多张图片等,总的来说,ListView主要应用于单列多行的列表,然而GridView主要应用于多行多列的网状布局。...//去除选中时的黄色底色 8.android:scrollbars=”none” //隐藏GridView的滚动条 9.android:fadeScrollbars=...”true” //设置为true就可以实现滚动条的自动隐藏和显示 10.android:fastScrollEnabled=”true” //GridView出现快速滚动的按钮...” //设置为true时,你做好的列表就会显示你列表的最下面 14.android:transcriptMode=”alwaysScroll” //当你动态添加数据时,列表将自动往下滚动最新的条目可以自动滚动到可视范围内
为此,Flutter提供了多种可滚动组件(Scrollable Widget)用于显示列表和长布局。...我们先介绍一下常用的可滚动组件(如ListView、GridView等) SingleChildScrollView SingleChildScrollView类似于Android中的ScrollView...当可滚动组件滚动时,将列表项包裹在RepaintBoundary中可以避免列表项重绘,但是当列表项重绘的开销非常小(如一个颜色块,或者一个较短的文本)时,不添加RepaintBoundary反而会更高效...SliverGridDelegate是一个抽象类,定义了GridView Layout相关接口,子类需要通过实现它们来实现具体的布局算法。...上面我们介绍的GridView都需要一个widget数组作为其子元素,这些方式都会提前将所有子widget都构建好,所以只适用于子widget数量比较少时,当子widget比较多时,我们可以通过GridView.builder
A6.列的样式如何控制? 到现在你已经知道了5个使用GridView的技巧,我们继续,在A6中我们尝试改变表格某一列的样式。...A10.魔术师visible的戏法 这个片段我们说下GridView列的visible属性,此属性默认为true代表此列显示,通过设置visible属性可以隐藏一列,这种隐藏非css的display:none...,而是在渲染表格的时候就去掉了此列。...---- GridView 接下来我们进入B系列,B系列的重点在讲解GridView。 B1 关于布局layout 默认情况下GridView的布局如下图 ?...这个布局来自于GridView的layout属性,我们可以改变这个模板,比如要去掉summary。
一 GridView基本介绍 GridView是一个在Android中常用的布局控件,它可以以网格形式展示数据,类似于表格或者矩阵。...GridView可以按照指定的行数和列数将数据显示在多个单元格中,使得数据呈现出规律的排列方式。 GridView通过Adapter来提供数据,并且可以自定义每个单元格的布局。...用户可以自定义Adapter来适配各种数据源,并为每个单元格设置不同的视图样式和内容。 GridView还支持交互操作,例如点击单元格进行响应事件,滚动显示大量数据等。...:创建一个布局文件,用于定义 GridView 中每个单元格的样式。...四 总结 总之,GridView是Android开发中常用的用于展示数据的布局控件,特点是可以将数据按照网格形式展示,并支持自定义布局和交互操作。
X,Y的坐标来获取移动到GridView的哪一个位置 到GridView的item过多的时候,可能一屏幕显示不完,我们手指拖动item镜像到屏幕下方,要触发GridView想上滚动,同理,当我们手指拖动...item镜像到屏幕上面,触发GridView向下滚动 GridView交换数据,刷新界面,移除item的镜像 看完上面的这些思路你是不是找到了些感觉了呢,心里痒痒的想动手试试吧,好吧,接下来就带大家根据思路来实现可拖拽的...} /** * 当moveY的值大于向上滚动的边界值,触发GridView自动向上滚动 * 当moveY的值小于向下滚动的边界值,触犯GridView自动向下滚动...GridView向上或者向下滚动的偏移量的时候,可能我们手指没有移动,但是DragGridView在自动的滚动 //所以我们在这里调用下onSwapItem()方法来交换item ....x的机器是不存在的,但是我们可以使用smoothScrollBy()来代替上面的方法使得GridView滚动 注意:很多朋友说运行在2.3的机器上面拖动的时候出现某些item无缘无故的隐藏了,笔者在写
大家好,又见面了,我是你们的朋友全栈君。 文章目录 一、前言 二、GridView 2.1. 概述 2.2. GridView是什么? 2.3. GridView布局与样式 2.3.1....GridView及其辅助类能让你在表中来查看集合中的数据项,且可以通过表头来进行交互(表头是个按钮,可以给它加各种交互功能,如排序)。 2.2. GridView是什么?...GridView控件显示了来自ItemSource的数据: 2.3. GridView布局与样式 GridViewColumn的列单元格和列标题具有相同的宽度。...与GridView进行用户交互 当你在程序中使用了GridView时,用户可以与GridView交互并修改其格式。例如,用户可以重新排序列(拖动表头使整列移动)、调整列的大小、选中表中的项和滚动内容。...滚动查看内容 若GridView的大小不足以显示所有项,用户可以使用ScrollViewer控件提供的滚动条水平或垂直滚动。若所有内容一开始都可见,滚动条将被隐藏。
可滚动组件 当组件内容超过当前显示视口(ViewPort)时,如果没有特殊处理,Flutter 就会提示 Overflow 错误,为此,Flutter 提供了多种可滚动组件,用于显示列表和长布局; 可滚动组件都直接或间接的包含一个...可滚动组件中有很多都支持 Sliver 的延时构建模型,如 ListView,GridView ,但是也有不支持改模型的 SingleChildScrollView 主轴和纵轴 在滚动组件的坐标描述中,...其实此属性的本质上是决定可滚动组件的初始滚动位置是在 头 还是在 尾 ,如 false 时,初始位置在头,反之则在 尾 primary:指是否使用 widget 树中默认的 PrimaryScrollController...,所以如果预计视口可能包含超出屏幕尺寸太多内容时,那么使用 SingleChildScrollView 将会非常昂贵(性能差),此时应该使用一些支持 Sliver 延时加载的可滚动组件,如 ListView...ist 来作为 children 属性时,只适用于组件较少的情况,这是一个通用的规律,并非 ListView 自己的特性,想 GridView 也是如此 ListView.builder 这种适合列表项比较多
="#00000000" //去除拖动时默认的黑色背景 7.android:listSelector="#00000000" //去除选中时的黄色底色 8.android:scrollbars...="none" //隐藏GridView的滚动条 9.android:fadeScrollbars="true" //设置为true就可以实现滚动条的自动隐藏和显示...10.android:fastScrollEnabled="true" //GridView出现快速滚动的按钮(至少滚动4页才会显示) 11.android:fadingEdge="none..." //设置为true时,你做好的列表就会显示你列表的最下面 14.android:transcriptMode="alwaysScroll" //当你动态添加数据时,列表将自动往下滚动最新的条目可以自动滚动到可视范围内...子元素布局: <?
这篇文章主要介绍ListView,GridView,ScrollView的常用属性和基本用法,并利用ListView实现一个关于微信的界面。...对于ListView的优化在后边的Demo中会提到。 ListView的常用属性: android:lsitSelector:设置列表项被点击时的背景色。...ScrollView 滚动视图也是很常见的视图,当一个屏幕中内容很多时,我们可以通过滚动来查看所有内容。...ScrollView继承自FrameLayout,里面只能有一个视图,且只支持垂直滚动,如果想水平滚动,使用HorizontalScrollView。...因为我在布局文件中已经自定义了标题栏,所以需要把系统自带的标题栏隐藏。
开始GridView GridView主要是为了实现表格复用,尤其我们做后台的时候,你发现表单和表格占据了大部分页面,而表格的样式又是高度的统一,那么如果有这样一个挂件,传入数据集自动渲染表格该多好。...于是GridView出现了,一个有细节、够稳定的表格渲染挂件。...当我们只需要$dataProvider每个对象的某些属性的时,则必须要指定columns属性,代码如下 try { echo GridView::widget([ 'dataProvider...A10.魔术师visible的戏法 这个片段我们说下GridView列的visible属性,此属性默认为true代表此列显示,通过设置visible属性可以隐藏一列,这种隐藏非css的display:none...B1 关于布局layout 默认情况下GridView的布局如下图 [163fd14c7acd08dc?
前面一共用了8期来学习ListView列表的相关操作,其实学习的ListView的知识完全适用于AdapterView的其他子类,如GridView、Spinner、AutoCompleteTextView...STRETCH_SPACING:仅拉伸元素之间的间距。 STRETCH_SPACING_UNIFORM:表格元素本身、元素之间的间距一起拉伸。...STRETCH_COLUMN_WIDTH:仅拉伸表格元素本身。 另外需要注意的是使用GridView时一般都应该指定numColumns大于1;否则该属性的默认值为1。...继续使用WidgetSample工程的listviewsample模块,在app/main/res/layout/目录下创建gridview_layout.xml文件,在其中填充如下代码片段: <?...在res/layout/目录下新建一个gridview_item.xml的列表项布局文件,其代码如下: <?xml version="1.0" encoding="UTF-8"?
GridView是网格视图,用于分行分列显示表格信息。...下面是GridView常用的属性和方法: xml布局上的属性设置: horizontalSpacing : 指定子视图在水平方向的间距。...实际开发中有时需要设置网格之间表格线的颜色,可惜GridView并未直接给出相应的属性和方法,那得变通处理一下。...具体的说,就是给GridView设置整个网格的背景色(例如黑色),以及网格之间的水平间距和垂直间距;然后给每项网格的根布局设置背景色(例如白色),这样只有网格间距是黑色,从而间接画上了黑色表格线。...GridView的适配器模板与ListView是一样的,只要换掉代码里的布局文件名以及相关控件名称就好了,所以不再重复贴出GridView的适配器代码。
:horizontalSpacing=”10dp” //两列之间的边距 6.android:cacheColorHint=”#00000000” //去除拖动时默认的黑色背景 7.android...:listSelector=”#00000000” //去除选中时的黄色底色 8.android:scrollbars=”none” //隐藏GridView的滚动条 9.android:fadeScrollbars...=”true” //设置为true就可以实现滚动条的自动隐藏和显示 10.android:fastScrollEnabled=”true” //GridView出现快速滚动的按钮(至少滚动4页才会显示...true” //设置为true时,你做好的列表就会显示你列表的最下面 14.android:transcriptMode=”alwaysScroll” //当你动态添加数据时,列表将自动往下滚动最新的条目可以自动滚动到可视范围内...一.GridView按钮图片点击效果 二.GridView九宫格分割线效果实现 一.GridView按钮图片点击效果 我们先来看看GridView按钮图片的点击效果吧,不是说每一个item的点击背景颜色的改变
AdaptiveGridView 控件能够以均匀分组的方式,让一组列填充整个显示空间,它可以对布局和内容的变化做出反应,以便自动适应不同的外观。我们来看一下官方示例的展示: ?...去显示特定的 item;当 d 为 FrameworkElement 类型时,绑定 ItemWidth 和 ItemHeight 属性;当为 ContentControl 类型时,HorizontalContentAlignment...;当单行时,把 MaxHeight 属性设置为 ItemHeight,Orientation 设为纵向,滚动设置包括纵向滚动禁止,隐藏滚动条,横向滚动可用;如果为多行模式,则根据保存的 Orientation...,如果有变化则重新计算布局;如果是拉伸状态,则尺寸变化时直接重新计算布局; private void OnSizeChanged(object sender, SizeChangedEventArgs...OneRowMode 时使用,作用是把原高度,加上 padding 和 margin 变成新的高度,效果就是单行模式时,元素在高度上没有空隙;设置的 Item padding 和 margin 会失效
include/merge 布局优化中常常用到include/merge标签,include的含义类似C代码中的include,意思是直接把指定布局片段包含进当前的布局文件。...include适用于多个布局文件中存在相同的xml片段,比如说相同的标题栏、相同的广告栏、相同的进度栏等等。...基于以上特性,ViewStub在提高布局性能上有几个特点: 优点:ViewStub在加载时只占用大约一个View控件的内存,不占用layout整个布局需要的内存; 缺点:ViewStub一旦调用inflate...如果还想再次隐藏或显示布局,只能通过setVisibility来实现。...代码中设置主题可通过“setTheme(R.style.***)”完成,布局中设置可在AndroidManifest.xml的activity节点下添加theme属性,如“android:theme="
始终隐藏状态栏意味着用户必须退出你的应用才能知道现在的时间,或者了解当前环境下是否有Wi-Fi连接。 在用户全屏观看媒体时,考虑隐藏状态栏以及所有页面UI。...想要了解更多,请参考下文控件中的页面控件部分内容。 一般来说,一次只展示一个滚动视图。由于用户滚动屏幕时动作幅度经常都会很大,如果在一屏中同时存在不止一个滚动视图,他们很容易会碰到另一个。...iOS提供了若干表格视图元素(table-view elements)来扩展表格视图的功能。除了特别标明外,这些元素只适用于表格视图。 ?...Value 2的布局中,文本和副标题中间的垂直间距会让用户专注于副标题的第一 个单词。 ? 重要 以上四种单元格样式均支持添加表格视图元素,如勾选或展开标志。...如果你想以一种非标准的形式来布局你的表格,最好是自定义一种单元格样式,而不是在现有的表格样式上进行改动。
高级组件 6.1 可滚动组件 对于列表和长布局的显示溢出问题,可以使用Flutter提供的可滚动组件来处理。...目前,可滚动组件中的大部分组件都支持基于Sliver的延迟构建模型,如ListView、GridView。...CustomScrollView作为容器组件时,子组件不能是ListView、GridView等可滚动组件,会造成滚动冲突。...= true,//是否保持滚动位置 this.debugLabel, }) 当keepScrollOffset的属性值为true时,可滚动组件的滚动位置会被存储到PageStorage中,当可滚动组件重新创建时可以使用...,为了不造成滚动时的冲突,需要对子组件添加禁止滚动属性。
CustomScrollView CustomScrollView是使用Sliver组件创建自定义滚动效果的滚动组件,使用场景: ListView和GridView相互嵌套场景,ListView嵌套GridView...时,需要给GridView指定高度,但我们希望高度随内容而变化(不指定),ListView和GridView作为整体滚动效果。...相互嵌套场景 在实际业务场景中经常见到这样的布局,顶部是网格布局(GridView),然后是列表布局(ListView),滚动的时候做为一个整体,此场景是无法使用GridView+ListView来实现的...reverse参数表示反转滚动方向,并不是垂直转为水平,而是垂直方向滚动时,默认向下滚动,reverse设置false,滚动方向改为向上,同理水平滚动改为水平向左。...primary设置为true时,不能设置controller,因为primarytrue时,controller使用PrimaryScrollController,这种机制带来的好处是父组件可以控制子树中可滚动组件的滚动行为
这个可以拖动的gridview继承于gridview,所以,用法和gridview一样, 代码如下: public class DragGridView extends GridView {...对应的View private ImageView mDragImageView; // 用于拖拽时显示的幻影镜像 private Bitmap mDragBitmap; // 幻影镜像对应的...,item的相互交换以及GridView的自行滚动 * * @param moveX * @param moveY */ private void onDragItem...} /** * 当moveY的值大于向上滚动的边界值,触发GridView自动向上滚动 当moveY的值小于向下滚动的边界值,触发GridView自动向下滚动 * 否则不进行滚动...*/ void reorderItems(int oldPosition, int newPosition); /** * 隐藏时回调
领取专属 10元无门槛券
手把手带您无忧上云