(该方法在新版中已被废弃) setOnRefreshListener : 设置刷新监听器。在下拉松开时触发该监听器,需要重写该监听器的onRefresh方法。...首先要注意:在布局文件中,android.support.v4.widget.SwipeRefreshLayout下面只能有一个直接子视图,如果有多个子视图,那么将只展示第一个子视图,后面的子视图将不予展示...> LinearLayout> SwipeRefreshLayout自带的刷新提示只有一个进度圆圈...这里我们先在提示区域放置一个TextView控件,用来展示最基本的提示文字,在刷新开始时显示该提示,刷新结束时移除该提示。...从网上资料来看,大家给SwipeRefreshLayout添加上拉加载主要有两种思路: 1、重写SwipeRefreshLayout,在dispatchTouchEvent方法中捕获上拉事件,并进行合理性校验之后
LinearLayout线性布局: 指子控件以水平或垂直方式排列,正如其名字一样,这个布局中的所有控件在线性方向上依次排列。...:layout_weight:权重,除了被显示占据的空间以外的的空间,然后根据权重的大小来分配空间,使用权重通常会把分配该权重方向的宽度设置为0dp,如果未设置0dp,则该控件会占据指定的宽度,然后再加上根据权重来分配的空间...weight:android:layout_weight ="1"(线性布局内子元素对未占用空间【水平或垂直】分配权重值,其值越小,权重越大.前提是子元素设置了android:layout_width...结语 我们的软件是由好多个界面组成的,而每个界面又由N多个控件组成,Android中借助布局来让各个空间有条不紊的摆放在界面上。...可以把布局看作是一个可以放置很多控件的容器,它可以按照一定的规律调整控件的位置,从而实现精美的界面。布局中也可以放置布局,通过多层布局的嵌套,实现比较复杂的界面。
如下图,三个界面中的图案分别用了一只小猫,一个鱼缸,一条金鱼,它们各自的位置布局见下图: 1)在上面的三个图中,最左面的一个图,使用了一个垂直布局的LinearLayout,并且划分为两行,第一行是一个...在这个模式下,开发者可以随意点界面的任意一部分,进行放大或缩小观察以查看界面中各控件的具体位置和情况,如下图所示: 同时,还可以将截取的界面另外保存为PNG格式的图片文件。...而下方的带颜色的三个圆圈指示灯,分别说明了在测量(measure)、布局(layout)以及画视图(draw)三个阶段,这个控件所占用的时间百分比,如果是绿色的,表示该控件在该阶段比起其他50%的控件的速度要快...会另外单独打开一个小窗口,显示该空间的单独效果图。...1)我们再来看下右上角的缩略显示窗口,当界面里的控件太多时,可以在这个窗口中,点选某一部分,立刻会在主窗口中显示该区域控件的情况 2)在右方中部的属性列表中,会显示所点击的控件的详细属性情况 3)右下角则显示所点击的控件在整个界面中的实际位置
ProgressiveLayout 连续放置圆,使每个圆与先前放置的两个圆在外部相切。该算法是确定性的,尽管可以通过改变输入圆圈的顺序产生不同的布局。它非常高效,因此适用于处理大型数据集。...,该函数通过将圆放置在靠近边界区域中心的位置,为圆随机分配起始位置。...为了说明这一点,我们首先将所有圆圈放置在边界区域的一个角附近。 lLayout(dt.nt) 接下来我们使用 ggplot 显示初始和最终布局。...ggplot(data ge_pgon(couaa=0.3) + cor_el(xli=lis yl=imts) 移动和固定 RepelLayout 函数接受一个可选 weights 参数,以在布局算法的每次迭代中对圆的移动进行额外控制...cirtt.t dgfal <- circes(es$aut) plot(dta = da,as(x, y, grp=d, fl=ste)) + gen(coor) 请注意,在初始布局中重叠的固定圆在最终布局中仍然重叠
的layout_width为match_parent,Column相对应LinearLayout的layout_height为match_parent。...:将主轴方向上的空白区域均分,使得children之间的空白区域相等,但是首尾child的空白区域为1/2 spaceEvenly:将主轴方向上的空白区域均分,使得children之间的空白区域相等...关于textDirection和verticalDirection我们不必死记硬背Row中是谁控制谁,在Column中是谁控制谁 我们只需要记住 textDirection就是用来控制水平方向的起始位置和排列方向...交叉轴)就是与当前控件方向垂直的轴 Expanded 布局 属性 说明 flex 弹性参数 children 子组件 可以把Expanded布局中的flex看作Android中xml属性中的android...:layout_weight这个属性 flex:如果为0或null,则child是没有弹性的,即不会被扩伸占用的空间。
// scrollview中viewpager一定要设置高度,此处根据图片的宽高比来设定高度 int bannerWidth = (Utils.getScreenWidth(getContext()...,否则内容无法加载出来,可以在xml中指定,也可以代码设定,但一定要有确定值。...第二步:无限轮播 无限轮播只需要在有限轮播的基础上,做以下两个改动点,修改getCount返回值且在加载数据时获取正确的数据源即可 public class BannerAdapter extends...mHandler.removeCallbacksAndMessages(null); mHandler.postDelayed(bannerRunnable, 3000); } 第四步:添加指示器 指示器样式及表现可以自己去根据需求实现,以相对简单和常见的小圆圈指示器为例...,添加和banner数量相同的小圆圈,小圆圈设置selector,在选中时为黑色选中样式,在非选中时为灰色默认样式,根据当前选中的banner的实际position,设置指示器的selected属性,从而展示不同的样式
默认排序方式 默认的排列方式有如下: enum MainAxisAlignment { /// 将children放置在主轴的起点 start, /// 将children放置在主轴的末尾...end, /// 将children放置在主轴的中心 center, /// 将主轴方向上的空白区域均分,使得children之间的空白区域相等,首尾child都靠近首尾,没有间隙...Spacer创建一个可调整的空间隔,可用于调整Flex容器(如行或列)中窗口小部件之间的间距。...= null), assert(flex > 0), super(key: key); /// 用于确定占用多少空间的弹性系数。.../// 在放置不灵活的子对象后,根据子对象的弹性系数,将自由空间按比例分割, /// 从而确定[间隔对象]在主轴中可以占用的空间量。默认为1。
Fill Mode填充方式,所有在LinearLayout的控件都必须指定它的填充方式, 即设置android:layout_width和android:layout_height,可以为三种值(1)具体的像素值...(2) RelativeLayout 相对布局,它是依靠与父容器,同一容器中其它控件的相对位置来排列显示的。...相对同一容器中其它控件的属性: android:layout_above: 表示此控件在另一控件的上面,类似的还有android:layout_below, android:layout_toLeftOf...通过TableRow来定义一行,如果一个控件占用多列可以设置android:layout_span,类似于HTML的colspan。...默认情况下一个控件是按顺序放置在每一列的(column0, column 1….), 也可以通过android:layout_column指定放在哪一列。
在弧线图中,节点将沿着 X轴放置,然后再利用弧线表示节点与节点之间的连接关系。 弧线图适合用来查找数据共同出现的情况。...比例面积图通常使用正方形或圆形,常见技术错误是,使用长度来确定形状大小,而非计算形状中的空间面积,导致数值出现指数级的增长和减少。...Ben Shneiderman 最初开发树状结构图用来在计算机上显示大量文件目录,而不会占用太多屏幕空间,因此树状结构图是一种紧凑而且节省空间的层次结构显示方式,可让人快速了解结构。...在地理区域上放置相等大小的圆点,旨在检测该地域上的空间布局或数据分布。 点示地图共有两种:一对一(每点代表单一计数或一件物件)和一对多(每点表示一个特定单位,例如 1 点 = 10棵树)。...在绘制记数符号图表时,将类别、数值或间隔放置在同一个轴或列(通常为 Y 轴或左侧第一列)上。每当出现数值时,在相应的列或行中添加记数符号。
在弧线图中,节点将沿着 X轴放置,然后再利用弧线表示节点与节点之间的连接关系。 弧线图适合用来查找数据共同出现的情况。...Ben Shneiderman 最初开发树状结构图用来在计算机上显示大量文件目录,而不会占用太多屏幕空间,因此树状结构图是一种紧凑而且节省空间的层次结构显示方式,可让人快速了解结构。...饼图 饼形图 (Pie Chart) 把一个圆圈划分成不同比例的分段,以展示各个类别之间的比例。...在地理区域上放置相等大小的圆点,旨在检测该地域上的空间布局或数据分布。 点示地图共有两种:一对一(每点代表单一计数或一件物件)和一对多(每点表示一个特定单位,例如 1 点 = 10棵树)。...在绘制记数符号图表时,将类别、数值或间隔放置在同一个轴或列(通常为 Y 轴或左侧第一列)上。每当出现数值时,在相应的列或行中添加记数符号。
在弧线图中,节点将沿着 X轴放置,然后再利用弧线表示节点与节点之间的连接关系。 弧线图适合用来查找数据共同出现的情况。...比例面积图通常使用正方形或圆形,常见技术错误是,使用长度来确定形状大小,而非计算形状中的空间面积,导致数值出现指数级的增长和减少。...在每个流程阶段中,流向箭头或线可以组合在一起,或者往不同路径各自分开。我们可用不同颜色来区分图表中的不同类别,或表示从一个阶段到另一个阶段的转换。...Ben Shneiderman 最初开发树状结构图用来在计算机上显示大量文件目录,而不会占用太多屏幕空间,因此树状结构图是一种紧凑而且节省空间的层次结构显示方式,可让人快速了解结构。...25、饼图 饼形图 (Pie Chart) 把一个圆圈划分成不同比例的分段,以展示各个类别之间的比例。
在Android中对控件布局指定尺寸时,一般有两种方式:一种设定为自适应布局,即match_parent(fill_parent)或者wrap_content,通过根据父布局大小或者自己内容来产生一个动态尺寸...> 我们把LinearLayout的总空间(其实应该叫“剩余空间”,我们下面再说)看作100%,那么设定了“layout_weight”值的 总和就代表100%。...这时父布局(LinearLayout)中的weightSum属性就可以大显身手了。...在LinearLayout布局中首先把layout_weight=0(即没有设置layout_weight属性)的控件所占的空间去掉(这部分控件已经通过具体的layout_width和layout_height...而在前面两个例子中,因为全是设定了layout_weight的控件,所以“剩余空间”正好等于父布局的总空间了。
讲之前解释一下attr.xml的作用,我用土话废话说,这样容易理解:比如我自定义一个控件,怎么实现呢,以RoundImageView为例,首先是继承ImageView,然后实现其构造函数,在构造函数中,...比如颜色和宽度,这个在attr.xml中定义了相关的名字,而在使用RoundImageView的xml布局文件中,我们会为其设置值,这里需要用的值,就是从那里设置的),并设置在本控件中,然后继承onDraw...为例,首先是继承ImageView,然后实现其构造函数,在构造函数中,获取attr中的属性值(再次解释:这里获取的具体的这个属性的值是怎么来的呢?...比如颜色和宽度,这个在attr.xml中定义了相关的名字,而在使用RoundImageView的xml布局文件中,我们会设置其值,这里需要用的值,就是从那里设置的),并设置在本控件中,然后继承onDraw...-- 再解释一遍,我们在布局中使用了我们在sttr中定义的属性,并在这里的布局文件中赋了值,所以在RoundImageView类中的结构体设置属性使用的值,就是我们在这里赋的,如果不使用attr.xml
设置布局属性: 可以通过在每个子视图的布局参数中设置不同的属性来控制子视图在LinearLayout中的位置和大小,例如android:layout_weight属性可以用来设置子视图的权重,实现按比例分配剩余空间...> 在上述代码中,我们将TextView和Button的高度都设置为0dp,并使用android:layout_weight属性将剩余的空间按比例分配给它们。...布局属性:通过在子视图的布局参数中设置不同的权重、对齐方式和填充方式,可以灵活控制每个子视图在LinearLayout中的位置和大小。...嵌套:可以嵌套多个LinearLayout以实现更复杂的布局结构。 大小测量:LinearLayout会根据子视图的测量要求和布局参数来计算自身的大小和子视图的位置。...可以使用android:layout_weight属性在LinearLayout中对子视图进行权重分配,实现灵活的空间占用和对齐。
(三种:visible、invisible(控件不可见,但是仍然占用屏幕空间,可以理解为变为了透明状态)、gone(控件不可见,并且不再占用屏幕空间))。...不同的是,该控件会在对话框中显示一个进度条,一般用于表示比较耗时的当前操作,让用户耐心等待。 2、四种基本布局 LinearLayout LinearLayout又称作线性布局,是一种非常常用的布局。...如果LinearLayout 的排列方向是 horizontal,内部的控件就绝对不能将宽度指定为match_parent,因为这样的话单独一个控件就会将整个水平方向占满,其他的控件就没有可放置的位置了... 中每加入一个 TableRow 就表示在表格中添加了一行,然后在TableRow中每加入一个控件,就表示在该行中加入了一列,TableRow中的控件是不能指定宽度的。...(P133) ListView的效率瓶颈存在的原因在于: getView()方法中每次都将布局进行重新加载一次,当ListView快速滚动时导致加载缓慢 每次在getView()方法中还是会调用
: 该列的宽度可以进行收缩,以使表格能够适应父容器的大小 Stretchable : 该列可以进行拉伸,以填满表格中空闲的空间 Collapsed : 该列将会被隐藏 常用属性 stretchColumns...shrinkColumns 为设置被收缩的列的序号,收缩是用于在一行中列太多或者某列的内容文本过长,会导致某列的内容会被挤出屏幕,这个属性是可以帮助某列的内容进行收缩,用于防止被挤出的。...当直接添加组件的时候,组件独自占用一行。...为什么 XML 资源文件要从文本格式编译成二进制格式 // 主要基于以下 两点原因: 空间占用更小:因为所有 XML 元素的标签、属性名称、属性值和内容所涉及到的字符串都会被统一收集到一个字符串资源池中...R.java 文件中。
ViewGroup.LayoutParams介绍 LayoutParams携带了子控件针对父控件的信息,告诉父控件如何放置自己 LayoutParams类也只是简单的描述了宽高,宽和高都可以设置成三种值...每一个ViewGroup(例如LinearLayout, RelativeLayout, CoordinatorLayout, etc)需要存储有关其孩子view的属性信息。...它的孩子view被放在ViewGroup,这些位置信息存储在一个包装类viewgroup.layoutparams对象中。...,告诉父控件如何放置自己,所以要使用相应父控件的LayoutParams。...本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
因为Android中RelativeLayout的测量次数比LinearLayout(不含weight的情况下)多,可以了解一下关于RelativeLayout、LinearLayout、FrameLayout...Cpu Time 函数占用的CPU时间,但不含内部调用其它函数所占用的CPU时间 Incl Real Time 函数运行的真实时间(以毫秒为单位),内含调用其它函数所占用的真实时间 Excl Real...Time 函数运行的真实时间(以毫秒为单位),不含调用其它函数所占用的真实时间 Call+Recur Calls/Total 函数被调用次数、递归调用占总调用次数的百分比 Cpu Time/Call 函数调用...方法中,找到它调用了两个方法,一个是图片显示的方法,另一个是正则判断的方法,由于ViewHolder#inflateFromModel在滑动机制中会不断地调用,而这个正则判断的目的是对点击事件中的控件进行...,就会以logcat的形式提示用户。
大家都知道,在Android项目当中,drawable文件夹都是用来放置图片资源的,不管是jpg、png、还是9.png,都可以放在这里。...另外,将icon放置在mipmap文件夹还可以让我们程序的launcher图标自动拥有跨设备密度展示的能力,比如说一台屏幕密度是xxhdpi的设备可以自动加载mipmap-xxxhdpi下的icon来作为应用程序的...().getDisplayMetrics().ydpi; 其中xdpi代表屏幕宽度的dpi值,ydpi代表屏幕高度的dpi值,通常这两个值都是近乎相等或者极其接近的,在我的手机上这两个值都约等于403...图片放好了之后,下面我在布局文件中引用这张图片,如下所示: 中的代码,如下所示: LinearLayout xmlns:android="http://schemas.android.com/apk
领取专属 10元无门槛券
手把手带您无忧上云