当前位置: 首页 > news >正文

科技网站 网站建设html简单的网页设计

科技网站 网站建设,html简单的网页设计,汽车营销型网站建设,长沙网站制作品牌前言 Android中layout_weight这个属性对于经常捣鼓UI的我们来说#xff0c;肯定不会陌生。但是我们在真正使用这个属性时#xff0c;经常会出现一些莫名奇妙的布局效果#xff1b;如果仅仅知其然而不知其所以然#xff0c;一些意外的布局效果一定让我们颇为头疼。在本文中肯定不会陌生。但是我们在真正使用这个属性时经常会出现一些莫名奇妙的布局效果如果仅仅知其然而不知其所以然一些意外的布局效果一定让我们颇为头疼。在本文中将对layout_weight这个属性详细剖析。 正文 从代码讲起 LinearLayout xmlns:androidhttp://schemas.android.com/apk/res/androidandroid:layout_widthmatch_parentandroid:layout_heightmatch_parentandroid:orientationverticalButton android:layout_widthmatch_parentandroid:layout_heightwrap_contentandroid:textbutton1/Button android:layout_widthmatch_parentandroid:layout_heightwrap_contentandroid:textbutton2/Button android:layout_widthmatch_parentandroid:layout_heightwrap_contentandroid:textbutton3/ /LinearLayout 效果图如下 我们可以发现这三个button并没有将整个屏幕占据而是根据内容适配大小。 我们在button2里面添加一个属性  android:layout_weight1 发现布局变成这样了 我们发现这次屏幕被三个button占据了而且第一个和第三个button还是保持与内容适配大小而第二个button而占据了剩余屏幕空间。 我们对上面的情况进行讲解 1、我们只有在button2使用了layout_weight属性并赋值为1但是button1和button2并没有使用这个属性根据API可以知道他们的layout_weight属性等于0。 2、LinearLayout如果显式包含layout_weight属性时会measure两次第一次将正常计算三个button的宽高第二次将结合layout_weight的值分配剩余的空间。   通俗点来总结Android系统先按照你设置的3个Button高度Layout_heightwrap_content,给你分配好他们3个的高度然后会把剩下来的屏幕空间全部赋给Button2,因为只有他的权重值是1这也是为什么Button2占了那么大的一块空间。 这么讲解大概大家也对layout_weight属性有了比较清晰的认识了吧。 再来看看下面的代码 LinearLayout xmlns:androidhttp://schemas.android.com/apk/res/androidandroid:layout_widthmatch_parentandroid:layout_heightmatch_parentandroid:orientationhorizontalTextView android:layout_widthwrap_contentandroid:layout_heightwrap_contentandroid:layout_weight1android:text1android:background#ff0000/TextView android:layout_widthwrap_contentandroid:layout_heightwrap_contentandroid:layout_weight2android:text2android:background#00ff00/TextView android:layout_widthwrap_contentandroid:layout_heightwrap_contentandroid:layout_weight3android:text3android:background#0000ff/ /LinearLayout 在我们对这三个TextView的layout_width都设置为wrap_content时我们会得到以下布局 这个布局很符合我们上面的分析 系统先给3个TextView分配他们的宽度值wrap_content宽度足以包含他们的内容1,2,3即可然后会把剩下来的屏幕空间按照1:2:3的比列分配给3个textview所以就出现了上面的图像。 如果我们将上面三个TextView的layout_width都设置为match_parent分别给三个TextView设置他们的Layout_weight为1、2、2的话会出现一个相反的布局效果 我们大概可以分辨出他们所占的宽的比例为3:1:1。这样就出现一个另外一个效果weight权重越大控件所占的空间越小。 所以网上就有人这么总结 在layout_width设置为match_parent的时候layout_weight所代表的是你的控件要优先尽可能的大,但这个大是有限度的即match_parent。在layout_width设置为wrap_content的时候layout_weight所代表的是你的控件要优先尽可能的小,但这个大是有限度的即wrap_content。 这是对于这种仅仅记住怎么用而不是为什么这么用的做法作为一个有追求有理想的程序员是不会苟同的因为说不定哪天咱们又忘了口诀所以我们要从原理上理解为啥是这个样子的。   依照上面的理解这个现象的出现在于layout_widthfill_parent这个原因导致的开始下面的分析 1、系统先给3个TextView分配他们所要的宽度match_parent也就指定了每一个TextView都是填满他的父控件这里就是整个屏幕的宽度。 2、由于如果包含layout_width这个属性LinearLayout将会进行第二次measure此时将会根据权重分配剩余的空间在这里剩余空间1个parent_width-3个parent_width-2个parent_width (parent_width指的是屏幕宽度 )。 3、第一个TextView的实际所占宽度parent_widthmatch_parent的宽度 1/5(他所占剩余空间的权重比列 * 剩余空间大小-2 parent_width3/5parent_width 同理第二个TextView的实际所占宽度parent_width 2/5*(-2parent_width)1/5parent_width; 第三个TextView的实际所占宽度parent_width 2/5*(-2parent_width)1/5parent_width 由此我们就可以知道为什么是按3:1:1的这个比例显示了。   如果我们将Layout_weight为1、2、3呢第三个TextView直接消失了有木有 我们可以按照上面的方法算一次就得出答案了 1、系统先给3个TextView分配他们所要的宽度match_parent也就指定了每一个TextView都是填满他的父控件这里就是整个屏幕的宽度。 2、由于如果包含layout_width这个属性LinearLayout将会进行第二次measure此时将会根据权重分配剩余的空间在这里剩余空间1个parent_width-3个parent_width-2个parent_width (parent_width指的是屏幕宽度 )。 3、第一个TextView的实际所占宽度parent_widthmatch_parent的宽度  1/6(他所占剩余空间的权重比列 * 剩余空间大小-2 parent_width2/3parent_width 同理第二个TextView的实际所占宽度parent_width 2/6*(-2parent_width)1/3parent_width; 第三个TextView的实际所占宽度parent_width 3/6*(-2parent_width)0parent_width 所以三个TextView的显示比例应该为2:1:0第三个TextView就消失了因为根据计算都没有空间可以分配给他了。 看到这里大家都清楚了解了这个计算原理相信对于设计UI布局有所帮助对于match_parent和wrap_content混合使用的UI布局也可以通过这个方法进行计算设计。   接下来顺带着也给大家说另外一个跟Layout_weight相关的属性weightSum 顾名思义就是制定权重的总值如果不指定weightSum系统会将各个Layout_weight的值相加得出的总数作为权重总值当然我们也可以在这里显式指定这里也方便我们布局所用我就在下面举一个关于weightSum属性的应用  参见这样一个效果一个总是占据一半屏幕的Button 其实XML代码很简单: LinearLayout xmlns:androidhttp://schemas.android.com/apk/res/androidandroid:layout_widthmatch_parentandroid:layout_heightmatch_parentandroid:gravitycenterandroid:weightSum2android:orientationhorizontalButton android:layout_width0dpandroid:layout_heightwrap_contentandroid:layout_weight1android:textbutton/ /LinearLayout   开发文档中对layout_weight属性的有如下描述定义weight总和的最大值。如果未指定该值以所有子视图的layout_weight属性的累加值作为总和的最大值。一个典型的案例是通过指定子视图的layout_weight属性为0.5并设置LinearLayout的weightSum属性为1.0实现子视图占据可用宽度的50。   从上面的xml中我们可以知道我们设置了weightSum为2而对于button设置了layout_width为0且layout_weight为1也就是weightSum的一半我们就可以得出上面一个效果使得Button保持占据屏幕的一半而不用通过硬编码去实现。   代码比较简单这里就不上demo了哈。   作者enjoy风铃出处http://www.cnblogs.com/net168/本文版权归作者和博客园共有欢迎转载但未经作者同意必须保留此段声明且在文章页面明显位置给出原文连接否则下次不给你转载了转载于:https://www.cnblogs.com/net168/p/4227144.html
http://www.pierceye.com/news/630560/

相关文章:

  • 手把手教你做网站 3北京网站建设是什么
  • 建设商务网站目的及功能定位惠州专业网站建设公司哪里有
  • 网站建设技术 教材迈若网站建设
  • 服务器正常网站打不开旅游app排行榜前十名
  • 网站建设服务套餐免费net网站空间
  • 导购网站怎么推广公司建多个网站
  • 做相册集什么网站电脑谷歌浏览器打开是2345网址导航
  • 做网站顾客提现金额后台私做网站名电子章
  • ps做网站素材文件打包开源软件开发
  • 焦作网站建设价格asp网站怎么运行
  • 宜昌市做网站的公司页面设计图片大全
  • 购买网站空间多少钱石家庄权威发布
  • 网站开发数据库动态管理网页制作商品页面模板
  • 电商网站设计模板平面设计师兼职网站
  • 网站建设的技术手段如何选择最好的域名
  • 汕头企业网站建设服务环境艺术设计网站推荐
  • 小米网站建设外贸网站建设哪家公司好
  • 怎样推广产品专业黑帽seo推广
  • 网站调用字体在阿里云备案网站通过
  • 手机网站做落地页石家庄网络营销
  • 如何把网站主关键词做到百度首页网站页面设计优化方案
  • 做门户网站多少钱做视频解析网站播放器和接口
  • 打开一个网站网站被挂马无法访问
  • 大连网站建设公司排名装饰设计公司哪个好
  • 苏州企业建设网站公司400电话网站源码
  • 贵州住房和城乡建设厅官网泰安千橙网站建设优化熊掌号
  • metro网站模板平面设计师网站
  • 怎样通过阿里云建设网站国内免费crm
  • 网站开发都需要学什么iis7网站建设
  • 网站 关键字it网站建设资讯网