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

AI权益加码!Claude Code、Cursor等20+工具免费用! 购周边限时加赠Coding Plan Lite,畅享主流AI工具!学习进阶更高效! 阅读详情


如上图,要想实现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.   
  5.     <size  
  6.         android:width="@dimen/spacing_medium"  
  7.         android:height="@dimen/spacing_medium" />  
  8.   
  9.     <solid android:color="@android:color/transparent" />  
  10.   
  11. </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




谈谈Android中的Divider是个什么东东 Android应用开发中会经常碰到一个叫divider的东西,就是两个View之间的分割线。最近工作中注意到这个divider并分析了一下,竟然发现内有乾坤,惊为天人… ListView的divider 1. 定制divider的边距 ListView的divider默认是左右两头到底的,如何简单的设置一个边距呢? 利用inset或者layer-list都可以简单的实现,代码如下: <!-- 方法一 --> <?xml version=1.0 encoding=utf-8?> <inset xmlns:android=http://schemas.android.com/apk/ 立即下载

相关推荐

Android 自定义控件 优雅实现元素间的分割线 (支持3.0以下)

转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/42407923,本文出自:【张鸿洋的博客】 1、概述 话说,随着Android SDK版本的升级,很多控件增加了新的属性方便我们的使用,比如LinearLayout中多了:divider、showDividers等,用于为其内部元素添加分隔;但是呢,这样的属性在较低版本的SDK中不...

modabobo 516

Android LinearLayout添加间隔(Divider)的正确姿势

最优解 我们直接看最优解 int width = 50; LinearLayout linearLayout = findViewById(R.id.ll_5_base); GradientDrawable drawable = new GradientDrawable(); drawable.setSize(width,1); linearLayout...

木寸~ 2万+

Android线性布局的divider属性

Android线性布局的divider属性就是将控件之间隔开。废话不多说,直接看结果android:divider="@drawable/xxxxxx"<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:too

一步一个脚印 3690

谈谈Android中的Divider

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_33850890的博客 494

android设置点击间隔,巧用android:divider属性设置LinearLayout元素之间间隔

如上图,要想实现3个button线性排列并且使它们的大小相同、间隔相等、而且整体填充满整个linearlayout,我们一般的做法是在每两个button之间放一个固定宽度的view,然后设置button的宽度为0、layout_weight为1。这样虽能实现功能,可是总感觉不方便,特别是button多的时候。今天介绍另一种简单、优雅的方法,就是利用android:divider属性。1、首先新建一...

weixin_34610364的博客 1819

巧用android:divider属性设置LinearLayout元素之间间隔

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

429

android 添加元素间隔,【android巧用android:divider属性设置LinearLayout元素之间间隔...

如上图,要想实现3个button线性排列并且使它们的大小相同、间隔相等、而且整体填充满整个linearlayout,我们一般的做法是在每两个button之间放一个固定宽度的view,然后设置button的宽度为0、layout_weight为1。这样虽能实现功能,可是总感觉不方便,特别是button多的时候。今天介绍另一种简单、优雅的方法,就是利用android:divider属性。1、首先新建一...

weixin_42377742的博客 613

Android (2022 xml版)LinearLayout添加间隔(Divider)的正确姿势

最优解 我们直接看最优解 divider_line.xml <?xml version="1.0" encoding="utf-8"?> <inset xmlns:android="http://schemas.android.com/apk/res/android" android:insetLeft="16dp" android:insetTop="4dp" android:insetRight="16dp" android:insetBottom="4

木寸~ 1281

Android实现元素间的分割线 android:divider=""(3.0以上特性)支持3.0以下

1、概述 话说,随着Android SDK版本的升级,很多控件增加了新的属性方便我们的使用,比如LinearLayout中多了:divider、showDividers等,用于为其内部元素添加分隔;但是呢,这样的属性在较低版本的SDK中不能被支持,那么,我们在开发过程中,可能会出现这样的需求:将这个新的特性想办法做到尽可能的向下兼容。有人说,可以自己写个新的控件去实现,这样的确可以,但是会不

u011127787的专栏 6736

如何保证linearlayout_Android LinearLayout动态添加View时如何设置View间的间距

概述 自定义ViewGroup和View的行为,主要是通过继承修改基类的onMeasure(),onLayout(),onDraw()三个函数。三个函数功能分别: onMeasure(): 计算当前视图的大小,在layout过程中会使用 调用子视同的函数计算器大小 onLayout(): 布局当前视图的子视图的布局 on在一个LinearLayout中动态添加View(Java代码实现): for...

weixin_35911307的博客 960

Linearlayout设置子View之间的空白间距

在做Android 项目中经常会使用 margin 来设置 view之间的间距非常的简单也很方便 并且还可以 通过layoutparams动态的来设置 但是在动态设置并不是值得提倡的 今天学到来一个新的方法 就是在linearlayout 中 通过 divider属性设置 间距 当然 divider 只会接受一个图片 所以想要什么样式的间距 可以通过 shape 来自己设定 就可以 方便简单

haoxuezhe1988的专栏 6333

用Drawable来实现UI元素间隔

一、在LinearLayout里面设置3个Button <LinearLayout android:id="@+id/buttons_container" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientat

dpf1103977916的专栏 399

android 二次绘制 layout,我的Android进阶之旅------>如何在多个LinearLayout中添加分隔线...

如果要适合于所有的Android版本,可以在多个LinearLayout放置用于显示分隔线的View。例如,放一个ImageView组件,然后将其背景设为分隔线的颜色或图像,分隔线View的定义代码如下:android:layout_width="fill_parent"android:layout_height="1dp"android:background="#ffffff"/>效果如下...

weixin_35565522的博客 392

LinearLayout设置分隔线

简介: 在android开发中,经常会碰到添加分隔线的界面设计,有些同学可能就是直接设置一个view,然后设置宽高和背景色,这也不失为一种方式,但是还有更简单方式,那就是利用LinerLayout自带的divider属性 步骤: 假设布局如下图: 在res/drawable/目录下创建一个shape的xml文件,里面代码如下: &amp;lt;?xml version=&quot;1.0&quot; e...

心境 2873

API 23 widget.LinearLayout——属性分析

 参阅:http://android.xsoftlab.net/reference/android/widget/LinearLayout.html   public class LinearLayout extends ViewGroup Added in API level 1    java.lang.Object   ↳android.view.View    

上帝也疯狂 1401

android LinearLayout添加分隔线

LinearLayout支持直接显示分隔线。设置标签的 android:showDividers属性可以再LinearLayout的相应位置显示分隔线。如果有多个LinearLayout,显示效果和在 LinearLayout之间加分隔线是一样的。 android:showDividers属性可以设置如下4个值: none:不显示分隔线; beginning:在LinearLayou

wmtlike的博客 589

Android控件篇 TabLayout中的Tab间隔设置方法 下篇

TabLayout默认每个Tab之间是没有间隔的,实际项目中可以给每个Tab之间设置一个小竖线作为间隔 一、设置间隔drawable //TabLayout tabLayout = findViewById(R.id.tab_layout); LinearLayout linearLayout = (LinearLayout) tabLayout.getChildAt(0); linearLayout.setShowDividers(LinearLayout.SHOW_DIVIDER_MIDDLE); .

圈池 2135

LinearLayout API 分析

首先,LinearLayout是继承自ViewGroup的控件容器,子控件的排列方式是线性排列,可以选择(HORIZONTAL)横向或者(VERTICAL)纵向,这个参数可以在XML布局中设置,也可以在Java源码中控制: android:orientation="vertical"viewContainer.setOrientation(LinearLayout.VERTICAL);

vqqYuAn的专栏 1676
上一篇: 【android】自定义ViewGroup的onLayout()分析
下一篇: 【android】一套完善的Android异步任务类
长城Great
博客等级 码龄13年 125粉丝 80原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值