【android】巧用android:divider属性设置LinearLayout中元素之间的间隔

如上图,要想实现3个button线性排列并且使它们的大小相同、间隔相等、而且整体填充满整个linearlayout,我们一般的做法是在每两个button之间放一个固定宽度的view,然后设置button的宽度为0、layout_weight为1。这样虽能实现功能,可是总感觉不方便,特别是button多的时候。

今天介绍另一种简单、优雅的方法,就是利用android:divider属性。

1、首先新建一个固有的width/height的Drawable:

spacer_medium.xml

[java] view
plain
copy

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <shape xmlns:android="http://schemas.android.com/apk/res/android"
  3. android:shape="rectangle">
  4. <size
  5. android:width="@dimen/spacing_medium"
  6. android:height="@dimen/spacing_medium" />
  7. <solid android:color="@android:color/transparent" />
  8. </shape>

2.然后设置LinearLayout的android:divider="@drawable/spacer_medium",并设置android:showDividers="middle",这样就完美解决了linearLayout的元素之间的间隔问题。

 <LinearLayout
        android:layout_marginLeft="12dp"
        android:layout_marginRight="12dp"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:divider="@drawable/spacer_medium"
        android:background="#77000000"
        android:showDividers="middle">
        <Button
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="button"/>
        <Button
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="button"/>
        <Button
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="button"/>
    </LinearLayout>

参考:http://blog.csdn.net/startupmount/article/details/41745715

时间: 2024-10-13 17:39:26

【android】巧用android:divider属性设置LinearLayout中元素之间的间隔的相关文章

Android 控件的一些属性--持续更新中...

归纳一些冷门又可能用到的Android控件属性 1.ListView android:drawSelectorOnTop="true" 点击某一条记录,颜色会显示在最上面,记录上的文字被遮住,所以点击文字不放,文字就看不到 android:drawSelectorOnTop="false" 点击某条记录不放,颜色会在记录的后面,成为背景色,但是记录内容的文字是可见的 取消分割线/分隔线 android:divider="@null" listvi

Android见招拆招六:LinearLayout中Gravity、Layout_Gravity何时生效

对于LinearLayout何时生效的问题 对于 LinearLayout 当 android:orientation="vertical"  时, 只有水平方向的设置才起作用,垂直方向的设置不起作用.即:left,right,center_horizontal 是生效的. 当 android:orientation="horizontal" 时, 只有垂直方向的设置才起作用,水平方向的设置不起作用.即:top,bottom,center_vertical 是生效的

Android framework开发全局系统属性设置与获取

passport.baidu.com/?business&un=%E7%90%BC%E6%B5%B7%E5%B0%8F%E5%A7%90%E5%8C%85%E5%85%BB#0 passport.baidu.com/?business&un=%E5%B0%8F%E5%A7%90%E7%90%BC%E6%B5%B7%5F%E6%89%BE#0 passport.baidu.com/?business&un=%E5%8C%85%E5%A4%9C%5F%E4%B8%87%E5%AE%81

Android Studio第二十六期 - 自定义Activity中Fragment之间的传值

代码已经整理好,效果如下图:(附:copy loader的~剪刀手~) 地址:https://github.com/geeklx/MyApplication/tree/master/p018_activity_fragmenta_b

EA窍门——如何设置不同包中元素之间的关系

在画EA图的时候,D层的写好的类需要实现接口层的类,因为我已经建好包了,但是不同包之间的元素如何建立关系呢??由于之前我是用rose来画图的,这次用EA,我可以说完全陌生.在查找资料过程中发现EA超级强大. 一.解决工具 官网(了解大体流程,查看相关文档,视频)我自己安装的EA打开官网后是英文版的,后来找到了中文的官网. 网址:http://www.sparxsystems.cn/resources/ 谷粉搜搜(个人比较喜欢用这个搜索引擎) 百度文库.博客 二.解决内容[关系矩阵] 1.使用关系

CSharp程序员学Android开发---3.Android内部元素不填充BUG

最近公司组织项目组成员开发一个Android项目的Demo,之前没有人有Andoid方面的开发经验,都是开发C#的. 虽说项目要求并不是很高,但是对于没有这方面经验的人来说,第一步是最困难的. 项目历时一个多月,4个人开发,最终行成一个可用的Demo,整体效果还非常不错.这其中借鉴了网上的“仿网易客户端的Demo”还有就是学习<疯狂Android>,收获颇多,这里利用几篇文章做一个项目经验总结,还有就是更多的从C# 程序员的观点来理解Android的一些异同之处. 文章目录: CSharp程序

zIndex 属性设置元素的堆叠顺序。

http://www.w3school.com.cn/jsref/prop_style_zindex.asp 该属性设置一个定位元素沿 z 轴的位置,z 轴定义为垂直延伸到显示区的轴.如果为正数,则离用户更近,为负数则表示离用户更远. 语法: Object.style.zIndex=auto|number 可能的值 值 描述 auto 默认.堆叠顺序与父元素相等. number 设置元素的堆叠顺序. 提示和注释 注释:元素可拥有负的 z-index 属性值. 注释:Z-index 仅能在定位元素

控件属性设置

控件属性设置 XIB中设置UILabel文字居中 选中位于视图下方的Label对象,单击检视面板选择条中的Attributes Inspector图标,打开属性面板.在属性面板中找到标题为Alignment的分段控件(seg-mented control).选择中间的那个选项(居中对齐),如图所示. 改变按钮的背景颜色 在属性检视面板中向下滚动,会看到View标题下方的属性.在Background标签右侧,点击颜色面板(白色方块,上面有一条红色的斜线)可以打开颜色拾取器.

CSS3教程:Transform的perspective属性设置

1 2   <div id="animateTest" style="-webkit-transform: perspective(400px) rotateY(40deg);"> Css 1 2 <div id="animateTest" style="-webkit-transform: rotateY(40deg) perspective(400px);"> 如果大家不清楚,请听我娓娓道来. CC