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

Android android:layout_weight 属性 完美解释

linearLayout包含有weightchild时,linearLayout会measure两次: 设屏幕宽度为X 第一次:button1 measuredWidth为X, button2也为...X (因为用了weight,所以linearLayout每次measure child时不考虑前一个已经占用大小),total_width为2X 第二次:计算delta=x-total_width=...:“因为设置了button1权重最小,所以它占用布局优先级就越高”,也许在Android里面布局并没有优先级之说,我这里只是为了说明问题,自己定义,所以朋友们不要拍砖。      ...接着是当layout_weight设置为wrap_content時候,即适应內容宽度,意思是这个控件要尽可能小,只要能把內容显示出來就可以了,同樣,如果把button1和button2layout_weight...,所以這兩個控件總寬度要填滿父佈局寬度,所以就又要計算每個控件所占据大小,此時,button1優先級較高,共有兩份,一份1/3,一份2/3,button1要盡可能小,那button1當然要選1

25030

Android-LinearLayoutgetChildMeasureSpec解析

左右Margin+widthUsed 如果是Height的话:父View上下Padding+子View上下Margin+heightUsed PS:其中widthUsed/heightUsed是当前LinearLayout...),算出来值就是当前父View还剩空间大小 判断父ViewSpecMode 如果specMode为MeasureSpec.EXACTLY:意味着父View强制设置了一个大小给子View a)...XML具体指定大小 b) 判断childDimension是否为LayoutParams.MATCH_PARENT,则将size设置成父Viewsize,Mode设置为MeasureSpec.EXACTLY...View一个限定大小,子View不能超过这个大小 a) 判断childDimension>=0,如果满足,则将子Viewsize设置成XML配置大小,并且将 Mode设置成MeasureSpec.EXACTLY...,意味着View大小就是XML设置大小 b) 如果childDimension为LayoutParams.MATCH_PARENT,则子View大小为父Viewsize,但是Mode则为MeasureSpec.AT_MOST

1.4K10
您找到你想要的搜索结果了吗?
是的
没有找到

Android百分比布局之layout_weight属性

Android对控件布局指定尺寸时,一般有两种方式:一种设定为自适应布局,即match_parent(fill_parent)或者wrap_content,通过根据父布局大小或者自己内容来产生一个动态尺寸...LinearLayout(线性布局)我们知道主要是让他子控件实现并排或者并列布局效果,一般子控件大小是根据自身内容或者一个具体数值尺寸。...这时父布局(LinearLayoutweightSum属性就可以大显身手了。...在LinearLayout布局首先把layout_weight=0(即没有设置layout_weight属性)控件所占空间去掉(这部分控件已经通过具体layout_width和layout_height...值指定了空间大小),再将剩下空间交给设定了layout_weight控件按比百分比进行分割。

61130

Android实习收获:UI细节bug引发layout_weight深入理解

今天这次让我仔细看了之前一篇文章【Android入门常见问题Part1】android:layout_weight理解,结合这次问题,好好思考了一下layout_weight用法。...就比如说开篇那个问题,想让显示时间TextView不论何时都显示,就给其他某个不太重要组件设置权重,让那个不重要自己根据剩余空间显示大小。...还有的时候我们布局不仅一个权重,比如说为了屏幕适配,给布局所有子组件都设置权重,那么子组件就会占据权重响应比例。...超出部分也按照权重来分,不过是在组件原来占有空间基础上来减去这个值 所以2个按钮实际得到大小为: button1实际得到宽度是:10-(10+10-10)*2/3=1/3个空间大小 button2...实际得到宽度是: 10-(10+10-10)*1/3=2/3个空间大小

35610

Android系统五大布局详解Layout

组件 .... } 下面我们来介绍Android系统为我们提供五大布局:LinearLayout(线性布局)、FrameLayout(单帧布局)、AbsoluteLayout(绝对布局)、TablelLayout...android:layout_weight 表示子元素占据空间大小比例,有人说这个值大小和占据空间成正比,有人说反比。...我在实际应用设置和网上资料显示刚好相反,这个问题后面会专门写一篇文章来分析。现在我们只需要按照正比例来设置就可以。...可以为每一列设置以下属性: Shrinkable 表示该列宽度可以进行收缩,以使表格能够适应父容器大小 Stretchable 表示该列宽度可以进行拉伸,以使能够填满表格空闲空间...实际应用,这种布局用比较少,因为Android终端一般机型比较多,各自屏幕大小。分辨率等可能都不一样,如果用绝对布局,可能导致在有的终端上显示不全等。

2.1K10

android 线性布局(LinearLayout

="vertical"来控制 线性布局,有 几个及其重要参数,直接决定元素布局和位置,这几个参数是 android:layout_gravity ( 是本元素相对于父元素对齐方式 ) android...android:background="#c0c0c0" /> 权重: android:layout_weight...="1"通过设置控件layout_weight属性以控制各个控件在布局相对大小,线性布局会根据该控件layout_weight值与其所处布局中所有控件layout_weight值之和比值为该控件分配占用区域...在水平布局LinearLayout中有4个TxtView,这4个TextViewlayout_weight属性值都为1,那么这4个TextView大小将拉伸到总大小四分之一。...如果layout_weight指为0,控件会按原大小显示,不会被拉伸;对于其余layout_weight属性值大于0控件,系统将会减去layout_weight属性值为0控件宽度或者高度,再用剩余宽度或高度按相应比例来分配每一个控件显示宽度或高度

82910

Android如何制作漂亮自适布局键盘

最近做了个自定义键盘,但面对不同分辨率机型其中数字键盘不能根据界面大小自已铺满,但又不能每种机型都做一套吧,所以要做成自适应,那这里主讲思路。   ...最常见解决方案是用线性布局,自适应当然是按比例,但布局无%概念,那就要用到layout_weight了,该属性作用是决定控件在其父布局显示权重(具体概念就不多说了)。   ...设置每行LinearLayoutlayout_height=0dp,layout_weight=1,具体设置如下: ...现在问题是其中灰色边框怎么出来呢?TextView没有设置border属性,网上找方法又很麻烦。   ...结合layout_weight,可以使控件成正比例显示,轻松解决了当前Android开发最为头疼碎片化问题之一。如果设置成wrap_content,内容过长会导致上下无法对齐情况。

997100

Android从零单排系列二十九】《Android布局介绍——LinerLayout》

设置布局属性: 可以通过在每个子视图布局参数设置不同属性来控制子视图在LinearLayout位置和大小,例如android:layout_weight属性可以用来设置子视图权重,实现按比例分配剩余空间...布局属性:通过在子视图布局参数设置不同权重、对齐方式和填充方式,可以灵活控制每个子视图在LinearLayout位置和大小。...嵌套:可以嵌套多个LinearLayout以实现更复杂布局结构。 大小测量:LinearLayout会根据子视图测量要求和布局参数来计算自身大小和子视图位置。...在LinearLayout添加子视图(如Button、TextView等)作为其子元素,并使用布局参数(layout_width和layout_height等)设置每个子视图大小和对齐方式。...可以使用android:layout_weight属性在LinearLayout对子视图进行权重分配,实现灵活空间占用和对齐。

18830

LinearLayout(线性布局)

、fill_vertical、center_horizontal、fill_horizontal、center、fill、clip_vertical、clip_horizontal)控制布局控件对齐方式...android:layout_weight="1"通过设置控件layout_weight属性以控制各个控件在布局相对大小,线性布局会根据该控件layout_weight值与其所处布局中所有控件layout_weight...在水平布局LinearLayout中有两个Button,这两个Buttonlayout_weight属性值都为1,那么这两个按钮都会被拉伸到整个屏幕宽度一半。...如果layout_weight指为0,控件会按原大小显示,不会被拉伸;对于其余layout_weight属性值大于0控件,系统将会减去layout_weight属性值为0控件宽度或者高度,再用剩余宽度或高度按相应比例来分配每一个控件显示宽度或高度..." 51 android:textSize="15sp" > 52 53 54 55 <LinearLayout

70090

android listview 滑动卡顿问题解决

对于ListView,当然每一个Item都会被调用measure方法,而在这个过程getView和getCount会被调用,而且看用户需求,可能会有很多次调用。 而为什么会有很多组次调用呢?...问题就在于在layout决定ListView或者它父元素height和width属性定义了。...fill_parent会好一点,计算方法会比较简单,只要跟父元素大小相似就行,但是即使是fill_parent,也不能给View当饭吃,还是要计算出来具体dip,所以measure还是会被调用,只是可能比...所以,解决方法就是尽量避免自适应,除非是万不得已,固定大小或者填充效果会比较好一些。...当发现初始化adapter时候正常调用之后,我们再来尝试滑动listview,发现每出现一个item,当前视图显示item又调用了一次getview,通过刚哥这篇帖子,定位到问题在我getview

87860

Android基础_2 Activity线性布局和表格布局

在activity布局,线性布局和表格布局是最简单,这次分别从线性布局,表格布局以及线性布局和表格混合布局做了实验,实验只需要编写 相应xml代码,java代码不需要更改,因为我们这里只是练习...其中本实验用到各控件属性解释如下:     android:layout_weight属性是指不同控件在activity占有体积大小比例。     ...android:background为控件内文字颜色背景色,颜色采用rgb时前面需用”#”号.     android:textSize为文本大小,单位为pt,即镑。     ...-- 线性布局 android:layout_weight属性是指不同控件在activity占有体积大小比例。.../> 表格布局:   表格布局有点类似表单意思,可以在activity建立多行,每一行又可以设置为多列,所以看起来横竖条理比较清晰,因此叫做表格布局。

66020

androidlayout_weight体验(实现按比例显示)

android开发LinearLayout很常用,LinearLayout内控件android:layout_weight在某些场景显得非常重要,比如我们需要按比例显示。...android并没用提供table这样控件,虽然有TableLayout,但是它并非是我们想象像html里面的table那么好用,我们常用ListView实现table效果,但是列对齐确比较麻烦...一、LinearLayout控件layout_width设置为”wrap_content”,请看一下xml配置: <LinearLayout android:orientation=...,这样看来似乎可以实现按照比例显示了,但是有个问题,如果TextView内文本长度一同那么较长文本TextView会宽度会有所增加,见下面配置及效果: 配置: <LinearLayout...虽然这个android:layout_weight属性很怪异,但幸运是我们达到了目标:   按比例显示LinearLayout内各个子控件,需设置android:layout_width=”0dp”,

94940

Study Jams_ViewGroups&&LinearLayout

(放置View容器) LinearLayout布局 LinearLayout又称为线性布局,这个布局会将它所包含控件在线性方向上依次排列 下面是LinearLayout布局代码 <?...,很容易造成内容损失,如下图第一种,所以我们一般使用其余两种属性、wrap_context 适合内容大小宽度,View包含内容|match_parent 与父视图宽度相同,如下图所示 3....android :layout_weight布局权重 接下来我们学习LinearLayout一个重要属性android :layout_weight.这个属性允许我们使用比例方式来指定控件大小...权重默认大小为0,当我们不设置时,该View权重就为0....TextViewlayout_width设置为0dp,layout_weight=1,得到如下图示 <?

5810

AndroidStudio入门基础(一)——基础布局

这个相框大小呢,就用上面这两个属性举例,取值有三种: wrap_content 刚刚把文字组件包裹满长度 match_parent 撑满整个父空间长度 100px 具体像素值 对于相对布局有一个地方要注意...区别于RelativeLayout,LinearLayout就不要求每个组件都要设置自己id了,但是最好还是设置一下,这是一个好习惯哦。 那么问题来了,我怎么设置两个组件是横着并排还是竖着并排呢??...线性布局还有一个重要属性 layout_weight 取值一般是1、2、3…表示权重大小,例如: <LinearLayout xmlns:android="http://schemas.android.com...="Button 2" /> LinearLayout强大就在于它是可以嵌套,从而实现很多复杂布局。... 总结: 这一篇主要讲了布局,都是在layout文件夹.xml文件实现,现在还没涉及到java文件。

1.1K10

Android应用开发之线性布局

(绝对布局) GridLayout(网格布局) 今天我们要讲解就是第一个布局,LinearLayout(线性布局) LinearLayout LinearLayout又称作线性布局,是一种非常常用布局...容器相对它父元素对齐方式 android:layout_weight 权重,按比例来分配控件占用父控件大小 android:divider 分割线 android:showDivider 分割线位置...:width="wrap_content" 指定线性布局容器宽度为:根据容器内容宽度大小来填充屏幕宽度 android:width="match_parent" 指定线性布局容器宽度为:撑满整个屏幕宽度...:最下方 layout_weight 当我们给一个view设置了android:layout_weight属性,意味着赋予它话语权,常规思维就是谁weight大,谁说了算(空间占比大)。...属性值 解释 android:layout_weight="2" 该单元权重为2 divider 这个属性可以在LinearLayout每个子布局直间添加一个“drawable”作为分割线,这个drawable

56620
领券