在连接两个步骤的时候 连线上的图标类型有三种:红色就不做说明了; 黄锁,将鼠标放到锁上会提示:“ this is an unconditional hop that means tha regardless...of the execution result of 'start' the next job entries will be always executed” 这是一个无条件的锁,,意味着那不管执行结果的...“开始”接下来的工作条目将总是执行--有道翻译 意思大体就是,不管上一步结果如何,将会继续向下执行。...result of the execution will be evaluated if the result is true(without errors ) this path will be taken 在执行...“执行的结果将被评估如果结果是真实的(没有错误)这条路会被--有道翻译 他的意思是,只有当上一步的任务执行成功并且没有任何错误的时候才会执行下一步。
ViewGroup 一.什么是ViewGroup ViewGroup相当于是一个放置View的容器,里面可以放置其他的View,如TextView,ImageView等等 大家可以先观察下面这段代码...这段代码 LinearLayout 布局就相当于一个ViewGroups ,里面的两个TextView就相当于是LinearLayout的子View ,LinearLayout就是父View...(放置View的容器) LinearLayout布局 LinearLayout又称为线性布局,这个布局会将它所包含的控件在线性方向上依次排列 下面是LinearLayout布局的代码 的方向,vertical垂直排列,horizontal水平排列 这是上面代码呈现出来的视图 如果将android:orientation...,很容易造成内容的损失,如下图的第一种,所以我们一般使用其余的两种属性、wrap_context 适合内容大小的宽度,View包含内容|match_parent 与父视图的宽度相同,如下图所示 3
viewgroup.png Android为我们提供了View和ViewGroup的两个子类的集合,提供常用的一些输入控件(比如按钮,图片和文本域等)和各种各样的布局模式(比如线程布局,相对布局,绝对布局...View的容器,而它的子视图View可能是输入一些控件或者在某块区域的小部件UI。...表格布局: 指以行列的形式放置子控件,每一行是一个TableRow对象或者View对象。...> RelativeLayout相对布局 RelativeLayout是一个相对布局的视图组,用来显示相对位置的子视图类,在默认情况下,所有子视图对会分布在左上角。...layout_alignParentTop:为true,视图的上边界与父级的上边界对齐 layout_centerVertical:为true,将子类放置在父类中心 layout_below:将该视图放在资源
应用的功能是通过编写一个个activity子类来实现的。简单的应用可能只需一个子类,而复杂的应用则会有多个。 布局定义了一系列用户界面对象以及它们显示在屏幕上的位置。组成布局的定义保存在xml文件中。...LinearLayout组件继承View子类ViewGroup组件。ViewGroup组件是个包含并配置其他组件的特殊组件。...wrap_content:视图将根据其展示的内容自动调整大小。 android:orientation属性 android:orientation属性,它决定子组件的水平放置还是垂直放置。...根LinearLayout是垂直的,子LinearLayout是水平的。 android:text属性: TextView与Button组件具有android:text属性。...控制对象含有的逻辑单元,是视图与模型对象的联系纽带。控制对象响应视图对象触发的各类事件,还管理着模型对象与视图间的数据流动。
而如果你使用了"match_parent"(在Android API 8之前叫作"fill_parent"),就会让视图的宽和高延伸至充满整个父布局。...但是LinearLayout无法允许你准确地控制子视图之前的位置关系,所有LinearLayout中的子视图只能简单的一个挨着一个地排列。...下图展示了这个布局在一个更大的屏幕上显示的结果。 ? 可以注意到,即使屏幕的大小改变,视图之前的相对位置都没有改变。...平板和电视设备的屏幕都很大,足够同时显示两个面板,而手机屏幕一次只能显示一个面板,两个面板需要分开显示。...你也可以在图片的右边框和下边框绘制来标记内容需要放置在哪个区域。结果如下图所示: ? 注意图片边框上的黑色像素,在上边框和左边框的部分表示当图片需要拉伸时就拉伸黑点标记的位置。
图 4.2 平板的新闻列表 因此,更好的设计方案是将新闻标题列表界面和新闻详细内容界面分别放在两个碎片中,然后在同一个活动里引入这两个碎片,这样就可以将屏幕空间充分地利用起来了,如图4.3所示。...图 4.4 平板模拟器的运行效果 4.2.1 碎片的简单用法 这里我们准备先写一个最简单的碎片示例来练练手,在一个活动当中添加两个碎片,并让这两个碎片平分活动空间。 ...可以发现实际上上述代码执行顺序和我们写代码的顺序是完全相反的,我们首先要写一个关于fragment的布局xml文件,接着创建一个碎片类去引用这个布局文件,最后第二步是在activity_main文件中通过...可以说这样写代码的好处是不会IDE是不会报错引用错误,坏处是和程序的执行顺序正好相反,但是如果你深谙代码的执行逻辑,首先就是在activity_main文件中通过android:name来引用这个碎片类...这样我们就准备好了另一个碎片,接下来看一下如何将它动态地添加到活动当中。
但是,如果我们将这个词解释为表示诸如电阻器,电容器,电感器,二极管和晶体管之类的东西,工程师们就会知道它们实际上并不是组件。相反,这些黑色封装实际上是电路。 什么是集成电路?...晶体管的一个非常有价值的特性是它们可以非常小,这又使我们可以将复杂的功能压缩到一个很小的物理区域中。但是,一个微观晶体管在宏观世界中不是很有用:我们如何将其插入面包板或测量其电压?...组装机如何将其放置在PCB上? 集成电路(IC)的创建是在晶体管的微观世界和人类必须生活的宏观现实之间架起桥梁的技术。...IC封装类型 根据集成电路的物理结构,可以将其分为两大类。通孔IC的引脚较长,贯穿PCB,并从底部焊接;表面贴装IC的针脚较短,不延伸到板的另一侧。...下图显示了通孔IC(在右侧)和表面安装IC(在左侧)。 ? 在这里插入图片描述 如今,常见的情况是看到没有突出引脚的IC封装。这些封装可节省PCB面积,但也很难或不可能用手焊接。这是两个示例: ?
而如果你使用了"match_parent"(在Android API 8之前叫作"fill_parent"),就会让视图的宽和高延伸至充满整个父布局。...但是LinearLayout无法允许你准确地控制子视图之前的位置关系,所有LinearLayout中的子视图只能简单的一个挨着一个地排列。...下图展示了这个布局在一个更大的屏幕上显示的结果。 可以注意到,即使屏幕的大小改变,视图之前的相对位置都没有改变。...平板和电视设备的屏幕都很大,足够同时显示两个面板,而手机屏幕一次只能显示一个面板,两个面板需要分开显示。...你也可以在图片的右边框和下边框绘制来标记内容需要放置在哪个区域。结果如下图所示: 注意图片边框上的黑色像素,在上边框和左边框的部分表示当图片需要拉伸时就拉伸黑点标记的位置。
RelativeLayout 和 LinearLayout 类似,都是 ViewGroup,能“容纳”多个子view。 RelativeLayout 是一个以相对位置显示子视图的视图组。...每个视图的位置可以指定为相对于同级元素的位置(例如,在另一个视图的左侧或下方)或相对于父级 RelativeLayout 区域的位置(例如在底部、左侧或中心对齐)。...默认情况下,所有子视图均绘制在布局的左上角,因此必须使用 RelativeLayout.LayoutParams 中提供的各种布局属性定义每个视图的位置。...android:layout_below 将此视图的上边缘放置在使用资源 ID 指定的视图下方。...android:layout_toRightOf 将此视图的左边缘放置在使用资源 ID 指定的视图右侧。 示例: 为了让UI好看一点,先定义一下样式,在style.xml文件中新增一个style。
概述 使用android手机肯定很喜欢用手指把画面拖来拖去的感觉。这样的切换画面让人非常方便。在很多App的第一次启动时的引导页都有类似效果。 ?...控件 ViewFlipper 视图的切换容器视图,它有很多子视图,可以使用showPrevious,showNext来向前或者向后切换视图,不过是没有动画效果的 Animation 为切换增加动画...GestureDetector 手势侦查器,他提供了手势的一些事件,它封装了一些手指在屏幕的移动方向的处理,转换成相应的事件 实现步骤: 写一个窗体,放置一个ViewFlipper 在视图里。...并为ViewFlipper 添加子视图。...{ .... } else if (x1 - x2 > 100) {//从右往左拖动,100代表长度 ... } 5.由于判断了手势,那么我们可以对ViewFlipper的子视图进行切换了
一 ScrollView基本介绍 ScrollView是Android平台上的一个可滚动视图容器,它用于在一个可滚动区域内显示大量内容。...在ScrollView中,只能包含一个直接子视图(ViewGroup),通常是一个垂直方向的线性布局或相对布局。如果需要水平滚动效果,可以使用HorizontalScrollView作为替代。...-- 在这里添加您的内容视图 --> 在ScrollView内部添加内容视图。在ScrollView标签内部,可以放置各种UI组件来展示要滚动的内容。...-- 在这里添加您的滚动内容 --> LinearLayout> 确保内容视图高度适应内容。...-- 在这里添加适应内容高度的滚动内容 --> LinearLayout> 根据需要定制ScrollView和内容视图的其他属性。
不管是true还是false,都需要ViewGroup的LayoutParams来正确的测量与放置layout文件所产生的View对象。...LayoutInflater的两个参数的inflate()方法自动将attachToRoot设置为true。...解析layout的根视图,比如LinearLayout final View temp = createViewFromTag(root, name, inflaterContext...rInflateChildren方法解析所有子元素: 在LayoutInflater#inflate方法中,当解析完根视图以后,会通过rInflateChildren解析当前根视图下的所有子视图 final...进入到rInflate方法后,由于ImageView1和TextView1没有子结构,所以递归调用rInflate的时候会遇到type==XmlPullParser.END_TAG的终止条件,因此这两个
android:gravity:控制组件所包含的子元素的对齐方式 android:layout_gravity:控制该组件在父容器里的对齐方式 android:background:为该组件添加一个背景图片或者背景颜色...下面依次分别举例说明使用方法 orientation 是一个视图组,可以在一个方向垂直或者水平分布所有子项 当 android:orientation="vertical" 时, 只有水平方向的设置才起作用..."(子元素与父元素边缘的距离,设置在子元素上). 的设置值 对该方向上空间的分配则刚好相反。...可以把布局看作是一个可以放置很多控件的容器,它可以按照一定的规律调整控件的位置,从而实现精美的界面。布局中也可以放置布局,通过多层布局的嵌套,实现比较复杂的界面。
可是LinearLayout作为水平展示时有点逗,因为如果下面有两个子视图的宽度都是match_parent,那么LinearLayout只会显示第一个子视图,第二个子视图却是怎么拉也死活显示不了。...现在我们既希望两个子视图的宽度是match_parent,又希望能够拖动两个子视图,还有没有办法呢?...具体到LinearLayout的编码实现,对应的便是LinearLayout.LayoutParams的leftMargin参数,若该参数为正数,则视图页面拉出了一段空白;若该参数为负数,则视图页面隐藏了一段内容...所以我们可以给视图添加触摸监听器OnTouchListener,在触摸坐标发生变化的同时,给菜单子页面隐入隐出对应的宽度,从而达到抽屉式拉出菜单的效果。...2、菜单默认在左边页,内容默认在右边页,所以首次加载视图时,页面要自动滑到右边的内容页(调用scrollTo方法滚动到内容页)。
,从接触Android开始,我们就一直在接触View,界面当中到处都是 View,比如我们经常用到的TextView,Button,LinearLayout等等,但是我们真的了解View吗?...Log.i(TAG, "onCreate: x1=" +x1); Log.i(TAG, "onCreate: y1=" +y1); } } 第二种方法,在视图树绘制完成的时候进行测量...一般得到的都是0,除非你调用过scrollTo或scrollBy这两个函数来改变它。...不论是scrollTo或scrollBy,其实都是对View的内容进行滚动而不是对View本身,你可以做个小实验,一个LinearLayouy背景是黄色,里面放置一个子LinearLayout背景是蓝色...还有就是scrollTo和scrollBy函数的参数和坐标系是“相反的”,比如scrollTo(-100,0),View的内容是向X轴正方向移动的,这个相反打引号是因为并不是真正的相反,具体可以看源码,
事件中计算偏移量,再调用layout()方法重新放置这个自定义View 的位置即可。...layout 方法来重新放置它的位置 layout(getLeft()+offsetX, getTop()+offsetY,getRight()+offsetX , getBottom()+offsetY...同样,我们将ACTION_MOVE 中的代码替换成如下代码: LinearLayout.LayoutParams layoutParams= (LinearLayout.LayoutParams)getLayoutParams...放大镜外的内容,也就是报纸的内容不会随着放大镜的移动而消失,它一直存在。同样,我们的手机屏幕看不到的视图并不代表其不存在,如图2 所示。 ?...图3 调用scrollBy(50,50)后 虽然我们设置的数值是正数并且在X 轴和Y 轴的正方向移动,但Button 却向相反方向移动了,这是参考对象不同导致的差异。
如果按照普通的实现方式,此种照镜子的动画效果,得给两个视图分别注册监听器,然后在A视图移动之际,同时触发B视图的移动行为。...如此一来,两个视图之间的联系变得很紧密了,不但要分别改造这两个视图,而且还无法给其他视图复用。...2、两个函数中,layoutDependsOn用来判断当前的几个视图是否存在依赖关系,返回true表示存在依赖,反之则不存在依赖;也就是说,只有存在依赖关系的两个视图才会夫唱妇随,缺一不可。...具体实现之时,则需做三处修改: 1、首先自定义一个图像控件,通过手势可以拖动该控件; 2、其次自定义一个Behavior,指定存在依赖关系的两种视图,在layoutDependsOn方法中规定两种视图的类型...,在onDependentViewChanged方法中定义重物视图配合人力拉曳时的运动行为; 3、在布局文件中放置定滑轮、人力视图、重物视图,并给重物视图指定layout_behavior属性,说明重物视图的协调动作
大家好,又见面了,我是你们的朋友全栈君。 一、前期基础知识储备 由于移动设备物理显示空间一般有限,不可能一次性的把所有要显示的内容都显示在屏幕上。...所以各大平台一般会提供一些可滚动的视图来向用户展示数据。...HorizontalScrollView是FrameLayout的子类,这意味着你只能在它下面放置一个子控件,这个子控件可以包含很多数据内容。...HorizontalScrollView,就是直接将图片放置在HorizontalScrollView的子布局中进行显示,只需要一个布局文件进行控制,这样做非常简单,UI是通过布局文件进行控制。...效果如下: 最后补充两个HorizontalScrollView的滚动方法: HorizontalScrollView属于Scroll类家族成员,自然少不了控制其滚动的方法: ①滚动到指定位置 ——
RecyclerView RecyclerView是Android在support-v7库中新推出控件,中文别名为循环器视图,它的功能非常强大,可分别实现ListView、GridView,以及瀑布流网格的显示效果...onCreateViewHolder : 创建整个布局的视图持有者。输入参数中包括视图类型,可根据视图类型加载不同的布局,从而实现带头部的列表布局。...onBindViewHolder : 绑定每项的视图持有者。 下面是可以重写也可以不重写的方法: getItemViewType : 返回每项的视图类型。...这里返回的视图类型给onCreateViewHolder方法使用。 getItemId : 获得每项的编号。...下面是LinearLayoutManager的常用方法: 构造函数 : 可指定列表的方向与是否为相反方向开始布局。 setOrientation : 单独设置列表的方向。
上面说的很不好理解,继续看下面: android:layout_width="fill_parent"定义当前视图在屏幕上 可以消费的宽度,fill_parent即填充整个屏幕的宽度 android...:layout_height="fill_parent"定义当前视图在屏幕上 可以消费的高度,fill_parent即填充整个屏幕的高度 android:layout_height="wrap_content...":随着文字栏位的不同 而改变这个视图的宽度或者高度。...可选值 这两个属性可选的值有:top、bottom、left、right、center_vertical、fill_vertical、center_horizontal、fill_horizontal...// 代表控件Button在父窗体LinearLayout上是居中放置的,也就是在那行上居中 android:layout_marginTop="120px"
领取专属 10元无门槛券
手把手带您无忧上云