首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Android精通:View与ViewGroup,LinearLayout线性布局,RelativeLayout相对布局,ListView列表组件

表格布局 GridLayout网格布局 描述一下几个重要的 线性布局: 指子控件以水平或垂直方式排列。...相对布局: 指子控件以控件之间的相对位置或子控件相对于父容器的位置排列。 帧布局: 指所有子控件均放在左上角且后面元素直接覆盖在前面元素之上。...绝对布局: 指子控件通过绝对定位x,y位置来决定其位置摆放。 表格布局: 指以行列的形式放置子控件,每一行是一个TableRow对象或者View对象。...> RelativeLayout相对布局 RelativeLayout是一个相对布局的视图组,用来显示相对位置的子视图类,在默认情况下,所有子视图对会分布在左上角。...layout_alignParentTop:为true,视图的上边界与父级的上边界对齐 layout_centerVertical:为true,将子类放置在父类中心 layout_below:将该视图放在资源

1.9K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Android 中的LayoutInflater(布局服务)

    id ②为该布局的外部再嵌套一层父布局,如果不需要的话,写null就可以了!...③通过LayoutInflater.LayoutParams来设置相关的属性: 比如RelativeLayout还可以通过addRule方法添加规则,就是设置位置:是参考父容器呢? 还是参考子控件?...设置组件在父容器中的位置, 比如设置组件的对其方式: RelativeLayout rly = new RelativeLayout(this); RelativeLayout.LayoutParams...(btnOne, lp2); 参照其他组件的对其方式: (有个缺点,就是要为参考组件手动设置一个id,是手动!!!!)...3.Java代码动态添加控件或xml布局 第二点我们讲解了使用纯Java代码来加载布局,实际当中用得并不多,更多的时候是动态 的添加View控件以及动态的加载XML布局!

    83510

    笔记——自定义View(三)

    当View的宽/高是match_parent时,如果父容器的模式是精准模式,那么View也是精准模式并且其大小是父容器的剩余空间;如果父容器是最大模式,那么View也是最大模式并且其大小不会超过父容器的剩余空间...第二种情况:如果在xml布局中View的宽或高其中一个为wrap_content,那么就将该值设置为默认的宽或高,另外的一个值采用系统测量的specSize即可,代码中设置如下,其中给mWidth、mHeight...9、如若非使用Relativelayout,一般自定义组件的时候不会去基础RelativeLayout,因为它会进行两次绘制;故在能实现相同功能需求时更多的使用LinearLayout和FrameLayout...总结:LinearLayout和RelativeLayout的性能差别主要体在onMeasure方法上,RelativeLayout始终要从竖直和水平两个方向对子View进行测量,而Linearlayout...在使用这两个布局之前,我们可以先进行衡量,如果需要实现的布局嵌套层次不深或者嵌套层次已经固定了,可以考虑用LinearLayout,相对的,如果某个布局嵌套层次很深,此时应该考虑使用RelativeLayout

    48930

    官方自适应新布局ConstraintLayout

    写在前面的话: 谷歌在2016年自己研发的类似于IOS约束的布局,可以很好的完成自定义的布局控件的适配,现如今2K甚至是4K屏的出现,导致很多手机应用的开发受到适配上的限制,但ConstraintLayout...现市面上的博文都是根据 “拖拉弹拽” 的方式来使用ConstraintLayout,而真正意义上的程序员是不需要鼠标进行操作的,所以本篇文章用通俗易懂的方式,列出代码相关的属性,来探究此布局的用法。...RelativeLayout与ConstraintLayout子控件对父控件相同功能的属性列举.png 根据这表格我们可以清楚的看到ConstraintLayout与RelativeLayout...说到这里,我们还记得LinearLayout的weightSum属性吗?...它能很好的适配线性布局下的某个子控件,在ConstraintLayout中我们也有相类似的子view属性,来达到这样的布局适配效果,其展示方式如图所示: ?

    1.1K20

    Android性能优化(二)之布局优化面面观

    那么我们结合产品的需求(任何不结合具体场景优化都是耍流氓): 去掉每行RelativeLayout的背景色; 去掉每行TextView的背景色; 备注:一个容易忽略的点是我们的Activity使用的Theme...四、减少嵌套层次及控件个数 Android的布局文件的加载是LayoutInflater利用pull解析方式来解析,然后根据节点名通过反射的方式创建出View对象实例; 同时嵌套子View的位置受父View...的影响,类如RelativeLayout、LinearLayout等经常需要measure两次才能完成,而嵌套、相互嵌套、深层嵌套等的发生会使measure次数呈指数级增长,所费时间呈线性增长; 由此得到结论...优化方案: 将之前使用RelativeLayout来做的可以替换的行换为TextView; 去掉之前多余的无用布局; 现在我们再使用Hierarchy Viewer来检测一下: ? ?...可以看到使用Merge标签进行优化之后布局嵌套就少了一层,Button作为父视图第三层FrameLayout的直接子视图。 注意:merge标签常用于减少布局嵌套层次,但是只能用于根布局。

    94930

    android常用布局详解「建议收藏」

    ViewGroup类是布局(layout)和视图容器(View container)的基类,此类也定义了ViewGroup.LayoutParams类,它作为布局参数的基类,此类告诉父视图其中的子视图想如何显示...LinearLayout 线性布局 线性布局是按照水平或垂直的顺序将子元素(可以是控件或布局)依次按照顺序排列,每一个元素都位于前面一个元素之后。 线性布局分为两种:水平方向和垂直方向的布局。...这里要与android:layout_gravity区分开,layout_gravity是用来设置自身相对于父元素的布局。...RelativeLayout 相对布局:是一个ViewGroup以相对位置显示它的子视图(view)元素,一个视图可以指定相对于它的兄弟视图的位置(例如在给定视图的左边或者下面)或相对于 RelativeLayout...相对布局定位非常的方便而且精准: RelativeLayout中子控件常用属性: 其特有的一些定位属性如下: 1、相对于父控件,例如: android:layout_alignParentTop=“true

    2.1K40

    错误解决:widget.FrameLayout$LayoutParams cannot be cast to android.widget.LinearLayout$LayoutParams

    大家好,又见面了,我是你们的朋友全栈君。...LayoutParams使用规则:“父Layout”为子控件分配空间的时候,获取”子Layout”的LayoutParams的必须是“父Layout”.LayoutParams,而非子Layout的LayoutParams...3 举例: 对于下面的布局来说: //Layout 对象的声明 RelativeLayout A; LinearLayout B; FrameLayout C; 最外层是RelativeLayout...分析:“要在代码里设置B的LayoutParams”,就要用B的父Layout的LayoutParams,即RelativeLayout A得LayoutParams, 代码如下: RelativeLayout.LayoutParams...); B.setLayoutParams(params); 如果要设置C的参数,则:就要用C的父Layout的LayoutParams,即LinearLayout B的LayoutParams。

    2.2K20

    Android系统五大布局详解Layout

    这就要用到Android的布局管理器了,网上有人比喻的很好:布局好比是建筑里的框架,组件按照布局的要求依次排列,就组成了用于看见的漂亮界面了。...系统中为我们提供的五大布局:LinearLayout(线性布局)、FrameLayout(单帧布局)、AbsoluteLayout(绝对布局)、TablelLayout(表格布局)、RelativeLayout...其中最常用的的是LinearLayout、TablelLayout和RelativeLayout。这些布局都可以嵌套使用。...(1)LinearLayout 线性布局 线性布局是按照水平或垂直的顺序将子元素(可以是控件或布局)依次按照顺序排列,每一个元素都位于前面一个元素之后。线性布局分为两种:水平方向和垂直方向的布局。...相对布局 RelativeLayout继承于android.widget.ViewGroup,其按照子元素之间的位置关系完成布局的,作为Android系统五大布局中最灵活也是最常用的一种布局方式

    2.8K10

    常用Android布局文件优化技巧总结

    Android 布局文件的根元素是一个视图容器,可以是一个 LinearLayout、RelativeLayout、FrameLayout 或其他类型的视图容器。...merge 标签可以用于复杂布局和嵌套布局的优化,可以减少重复和无用的布局文件,提高布局文件的效率和可维护性。...以前的布局文件一般使用 LinearLayout、RelativeLayout、FrameLayout 等视图容器,但这些容器布局比较麻烦,对布局约束的描述不太直观,且相对复杂。...ConstraintLayout 包含了 LinearLayout、RelativeLayout 和 FrameLayout 三种视图容器的功能,并提供了更直观、更灵活、更简便的布局方式。...传统的列表布局一般使用 ListView 或 GridView,但这些视图容器在性能和灵活性方面存在一定的问题。

    26220

    Android入门教程(三)

    对Android五大布局的描述,分别是 FrameLayout (框架布局),LinearLayout (线性布局),AbsoluteLayout (绝对布局),RelativeLayout (相对布局...LinearLayout线性布局 LinearLayout是很常用的布局,什么是线性布局,那就是垂直和水平两种布局来排列。...相对布局 RelativeLayout是一个非常强大的为设置用户界面的布局 RelativeLayout常用属性介绍 :来自于:https://www.douban.com/note/97496783/...下面介绍一下RelativeLayout用到的一些重要的属性: 第一类:属性值为true或false android:layout_centerHrizontal 水平居中 android:layout_alignParentBottom.../huangguangda/RelativeLayout TableLayout表格布局 TableLayout 将子元素的位置分配到行或列中,是一个以行、列显示视图View的视图组。

    66320

    相对布局和单位简介

    而不是LinearLayout 无论是Eclipse还是Android Studio,新建Blank Activity时默认的layout都是RelativeLayout, 查询资料发现这是由 android-sdk...我想知道的是为什么是RelativeLayout而不是LinearLayout?如果有可靠的数据支持的话再好不过,先谢过。...猫叔: Google的意思是“性能至上”, RelativeLayout 在性能上更好,因为在诸如 ListView 等控件中,使用 LinearLayout 容易产生多层嵌套的布局结构,这在性能上是不好的...而 RelativeLayout 因其原理上的灵活性,通常层级结构都比较扁平,很多使用LinearLayout 的情况都可以用一个 RelativeLayout 来替代,以降低布局的嵌套层级,优化性能。...对于简单的布局,或者使用 LinearLayout 的嵌套布局层次不多的情况下。还是推荐 使用 LinearLayout 来实现。 因为 LinearLayout 布局性能更高一点,为什么?

    50030
    领券