精华内容
下载资源
问答
  • 如何加分割线
    千次阅读
    2017-06-26 09:50:47
    在使用tablayout时,tablayout的tab之间是没有分割线的,有时为了让tab看起来更美观,我们会在tab之间加上一条分割线。方法如下:
    LinearLayout linearLayout= (LinearLayout) mTab.getChildAt(0);
    linearLayout.setShowDividers(LinearLayout.SHOW_DIVIDER_MIDDLE);
       linearLayout.setDividerDrawable(ContextCompat.getDrawable(mContext,R.drawable.tablayout_center_line));
            linearLayout.setDividerPadding(8);

    按照此方法即可实现。。。

    更多相关内容
  • 安卓RecyclerView添加自定义分割线,使用以及2种分割线用法,系统自带以及自定义分割线
  • ListTile加分割线

    2020-08-19 16:32:04
    e['youngName'], style: TextStyle(fontSize: 30), ), subtitle: Text( e['YoungMobile'], style: TextStyle(fontSize: 27), ), ), Divider( height: 0.0, indent: 0.0, color: Colors.black26, ),//---分割线的添加...
     child: Column(
                      children: items.map((e) {
                        return Slidable(
                          key: Key(e['title']),
                          actionPane: SlidableScrollActionPane(), //滑出选项的面板 动画
                          actionExtentRatio: 0.25,
                          child: Column(children: <Widget>[
                            ListTile(
                              leading: CircleAvatar(
                                radius: 30,
                                backgroundColor: Color(0xFF1A4A7A),
                                child: Text(
                                  e['youngName'].toString().substring(0, 1),
                                  style: TextStyle(fontSize: 30),
                                ),
                                foregroundColor: Colors.white,
                              ),
                              title: Text(
                                e['youngName'],
                                style: TextStyle(fontSize: 30),
                              ),
                              subtitle: Text(
                                e['YoungMobile'],
                                style: TextStyle(fontSize: 27),
                              ),
                            ),
                            Divider(
                              height: 0.0,
                              indent: 0.0,
                              color: Colors.black26,
                            ),//---分割线的添加Divider()控件---
                          ]),
                          actions: <Widget>[
                            //左侧按钮列表
                            e['Mark'] == 1
                                ? IconSlideAction(
                                    caption: '紧急联系人',
                                    color: Colors.blue,
                                    foregroundColor: Colors.yellowAccent,
                                    icon: Icons.star,
                                    onTap: () {
                                      G.toalert('该子女已是紧急联系人!');
                                    })
                                : IconSlideAction(
                                    caption: '标记',
                                    color: Colors.black,
                                    icon: Icons.star,
                                    onTap: () {
                                      Num = e['YoungMobile'];
                                      print(Num);
                                      markChild(Num);
                                    })
                          ],
                          secondaryActions: <Widget>[
                            //右侧按钮列表
                            IconSlideAction(
                              caption: '删除',
                              color: Colors.red,
                              icon: Icons.delete,
                              closeOnTap: false,
                              onTap: () {
                                showDialog(
                                  context: context,
                                  barrierDismissible: false,
                                  builder: (BuildContext context) {
                                    return new AlertDialog(
                                      title: new Text('提示'),
                                      content: new SingleChildScrollView(
                                        child: new ListBody(
                                          children: <Widget>[
                                            new Text(
                                              '确认删除该子女信息?',
                                            ),
                                          ],
                                        ),
                                      ),
                                      actions: <Widget>[
                                        FlatButton(
                                          child: Text('取消'),
                                          onPressed: () =>
                                              Navigator.of(context).pop(false),
                                        ),
                                        FlatButton(
                                            child: Text('确定'),
                                            onPressed: () {
                                              Num = e['YoungMobile'];
                                              deleteChild(Num);
                                              Navigator.of(context).pop(true);
                                            }),
                                      ],
                                    );
                                  },
                                );
                              },
                            ),
                          ],
                        );
                      }).toList(),
                    ),
    
    展开全文
  • 本篇文章主要介绍了android中RecyclerView自定义分割线实现,由于RecyclerView的布局方式多种多样,所以它的分割线也根据布局的不同有所差异,本文只针对LinearLayoutManager线性布局。
  • RecyclerView添加分割线

    千次阅读 2022-04-01 09:28:47
    RecyclerView 并没有 divider 属性,但是我们可以通过 RecyclerView 的 addItemDecoration() 来添加分割线,该方法参数为 RecyclerView.ItemDecoration。 介绍 当 RecyclerView 添加 ItemDecoration 后,...

    RecyclerView 并没有 divider 属性,但是我们可以通过 RecyclerView 的 addItemDecoration() 来添加分割线,该方法参数为 RecyclerView.ItemDecoration。

    介绍

    当 RecyclerView 添加 ItemDecoration 后,RecyclerView 在绘制每个 item 的时候,会去绘制 decorator,也就是会调用 ItemDecoration 的 onDraw() 和 onDrawOver() 方法。

    RecyclerView.ItemDecoration 是抽象类,主要提供三个方法:

    • onDraw(Canvas c, RecyclerView parent, State state): 在绘制item(drawChild) 前调用
    • onDrawOver(Canvas c, RecyclerView parent, State state): 在绘制item(drawChild) 后调用
    • getItemOffsets(Rect outRect, View view, RecyclerView parent, State state):outRect设置 item 的偏移量,用于绘制 decorator(也就是divider)

    关于 getItemOffsets 函数:
    RecyclerView 添加分割线,实际上就是 RecyclerView 的 item 之间添加了用作分割线的View,自然而然后续的 item 就会有偏移量,所以用 getItemOffsets 中的 outRect 来保存 item 的偏移量,从而便于绘制 decorator。

    实现

    实际上在当前版本的 RecyclerView (25.3.1) 中已经有 ItemDecoration 关于分割线的默认实现类 DividerItemDecoration

    package android.support.v7.widget;
    
    import android.annotation.SuppressLint;
    import android.content.Context;
    import android.content.res.TypedArray;
    import android.graphics.Canvas;
    import android.graphics.Rect;
    import android.graphics.drawable.Drawable;
    import android.support.annotation.NonNull;
    import android.support.v4.view.ViewCompat;
    import android.view.View;
    import android.widget.LinearLayout;
    
    public class DividerItemDecoration extends RecyclerView.ItemDecoration {
        public static final int HORIZONTAL = LinearLayout.HORIZONTAL;
        public static final int VERTICAL = LinearLayout.VERTICAL;
    
        // 如果不设置,则默认的分割线为 android.R.attr.listDivider 指定的 drawable
        private static final int[] ATTRS = new int[]{ android.R.attr.listDivider };
    
        private Drawable mDivider;
    
        /**
         * Current orientation. Either {@link #HORIZONTAL} or {@link #VERTICAL}.
         */
        private int mOrientation;
    
        private final Rect mBounds = new Rect();
    
        /**
         * Creates a divider {@link RecyclerView.ItemDecoration} that can be used with a
         * {@link LinearLayoutManager}.
         *
         * @param context Current context, it will be used to access resources.
         * @param orientation Divider orientation. Should be {@link #HORIZONTAL} or {@link #VERTICAL}.
         */
        public DividerItemDecoration(Context context, int orientation) {
            final TypedArray a = context.obtainStyledAttributes(ATTRS);
            mDivider = a.getDrawable(0);
            a.recycle();
            setOrientation(orientation);
        }
    
        /**
         * Sets the orientation for this divider. This should be called if
         * {@link RecyclerView.LayoutManager} changes orientation.
         *
         * @param orientation {@link #HORIZONTAL} or {@link #VERTICAL}
         */
        public void setOrientation(int orientation) {
            if (orientation != HORIZONTAL && orientation != VERTICAL) {
                throw new IllegalArgumentException(
                        "Invalid orientation. It should be either HORIZONTAL or VERTICAL");
            }
            mOrientation = orientation;
        }
    
        /**
         * Sets the {@link Drawable} for this divider.
         *
         * @param drawable Drawable that should be used as a divider.
         */
        public void setDrawable(@NonNull Drawable drawable) {
            if (drawable == null) {
                throw new IllegalArgumentException("Drawable cannot be null.");
            }
            mDivider = drawable;
        }
    
        @Override
        public void onDraw(Canvas c, RecyclerView parent, RecyclerView.State state) {
            if (parent.getLayoutManager() == null) {
                return;
            }
            if (mOrientation == VERTICAL) {
                drawVertical(c, parent);
            } else {
                drawHorizontal(c, parent);
            }
        }
    
        // 绘制 RecyclerView 为垂直布局时的分割线,此时分割线为水平分割线
        @SuppressLint("NewApi")
        private void drawVertical(Canvas canvas, RecyclerView parent) {
            canvas.save();
            final int left;
            final int right;
            // 需要考虑clipToPadding的boolean值
            if (parent.getClipToPadding()) {
                left = parent.getPaddingLeft();
                right = parent.getWidth() - parent.getPaddingRight();
                canvas.clipRect(left, parent.getPaddingTop(), right,
                        parent.getHeight() - parent.getPaddingBottom());
            } else {
                left = 0;
                right = parent.getWidth();
            }
    
            final int childCount = parent.getChildCount();
            for (int i = 0; i < childCount; i++) {
                final View child = parent.getChildAt(i);
                parent.getDecoratedBoundsWithMargins(child, mBounds);
                final int bottom = mBounds.bottom + Math.round(ViewCompat.getTranslationY(child));
                final int top = bottom - mDivider.getIntrinsicHeight();
                mDivider.setBounds(left, top, right, bottom);
                mDivider.draw(canvas);
            }
            canvas.restore();
        }
    
        // 绘制 RecyclerView 为水平布局时的分割线,此时分割线为垂直分割线
        @SuppressLint("NewApi")
        private void drawHorizontal(Canvas canvas, RecyclerView parent) {
            canvas.save();
            final int top;
            final int bottom;
            // 需要考虑clipToPadding的boolean值
            if (parent.getClipToPadding()) {
                top = parent.getPaddingTop();
                bottom = parent.getHeight() - parent.getPaddingBottom();
                canvas.clipRect(parent.getPaddingLeft(), top,
                        parent.getWidth() - parent.getPaddingRight(), bottom);
            } else {
                top = 0;
                bottom = parent.getHeight();
            }
    
            final int childCount = parent.getChildCount();
            for (int i = 0; i < childCount; i++) {
                final View child = parent.getChildAt(i);
                parent.getLayoutManager().getDecoratedBoundsWithMargins(child, mBounds);
                final int right = mBounds.right + Math.round(ViewCompat.getTranslationX(child));
                final int left = right - mDivider.getIntrinsicWidth();
                mDivider.setBounds(left, top, right, bottom);
                mDivider.draw(canvas);
            }
            canvas.restore();
        }
    
        @Override
        public void getItemOffsets(Rect outRect, View view, RecyclerView parent,
                RecyclerView.State state) {
            if (mOrientation == VERTICAL) { // 垂直方向的RecyclerView, item 的 bottom 偏移量 = 分割线高度
                outRect.set(0, 0, 0, mDivider.getIntrinsicHeight());
            } else { // 水平方向的RecyclerView, item 的 right 偏移量 = 分割线宽度
                outRect.set(0, 0, mDivider.getIntrinsicWidth(), 0);
            }
        }
    }

    在代码中添加:

     recyclerView.addItemDecoration(new DividerItemDecoration(recyclerView.getContext(), mLayoutManager.getOrientation()));

     就有了分割线。 默认的分割线效果是系统自带的 listDivider 的效果,我们也可以在主题配置文件中自定义全局的分割线,或者调用 setDivider 为每个 RecyclerView 设置单独的分割线。

    小结

    总的来说,目前添加分割线只需要使用 recyclerview-v7 包下的 DividerItemDecoration 类即可,分割线可以通过 setDivider 来个性化指定,也可以通过配置主题中的 android:listDivider 来全局指定。

    例如:

    RecyclerView mRecyclerView;
    mRecyclerView.addItemDecoration(new DividerItemDecoration(this, DividerItemDecoration.VERTICAL));

     

     这个能满足一般需求,但是如果我想使用自定义的分割线呢,看以下代码

      DividerItemDecoration divider = new DividerItemDecoration(this, DividerItemDecoration.VERTICAL);
            divider.setDrawable(ContextCompat.getDrawable(this, R.drawable.divider));
            mRecyclerView.addItemDecoration(divider);



     

    package com.example.administrator.myapplication;
    
    import android.content.ContextWrapper;
    import android.os.Bundle;
    import android.support.v4.content.ContextCompat;
    import android.support.v7.app.AppCompatActivity;
    import android.support.v7.widget.GridLayoutManager;
    import android.support.v7.widget.LinearLayoutManager;
    import android.support.v7.widget.DividerItemDecoration;
    import android.support.v7.widget.RecyclerView;
    
    
    import java.util.List;
    import java.util.ArrayList;
    
    public class BodyActivity extends AppCompatActivity {
        RecyclerView mRecyclerView;
    
        @Override
        protected void onCreate(Bundle saveInstanceState) {
            super.onCreate(saveInstanceState);
            setContentView(R.layout.activity_body);
            //1.获取控件
            mRecyclerView = (RecyclerView) findViewById(R.id.recycler_view);
    
            //设置布局方式
            mRecyclerView.setLayoutManager(new LinearLayoutManager(this, LinearLayoutManager.VERTICAL, false));//线性布局
    //        mRecyclerView.setLayoutManager(new GridLayoutManager(this,2));//网格布局
            mRecyclerView.setHasFixedSize(true); //是否重新计算大小
    
            //3.准备数据
            List<News> newsList = new ArrayList<>();
            News news;
            for (int i = 1; i <= 20; i++) {
                news = new News();
                news.setNewsTitle("java是世界上最好的语言" + i);
                news.setNewsSource("新华网" + i);
                news.setPublishTime("2018-8-6");
                newsList.add(news);
            }
    
    
            //添加Android自带的分割线
    //      mRecyclerView.addItemDecoration(new DividerItemDecoration(this, DividerItemDecoration.VERTICAL));
    
    
            //添加自定义的分割线
            DividerItemDecoration divider = new DividerItemDecoration(this, DividerItemDecoration.VERTICAL);
            divider.setDrawable(ContextCompat.getDrawable(this, R.drawable.divider));
            mRecyclerView.addItemDecoration(divider);
    
            //4.准备适配器
            NewsAdapter newsAdapter = new NewsAdapter(newsList);
            mRecyclerView.setAdapter(newsAdapter);
    
    
        }
    }

     

     

    展开全文
  • android,半圆虚线分割线效果,亲测可用,android,半圆虚线分割线效果
  • RecyclerView中利用GridLayoutManager实现item四周都带有分割线效果,博客链接:http://blog.csdn.net/abfo12
  • 多种HTML分割线

    千次阅读 2021-06-08 16:28:37
    6、双线 color=#987cb9 SIZE=3> 7、立体效果 width="80%" color=#987cb9 SIZE=1> 8、钢针效果 width="80%" color=#987cb9 SIZE=1> 9、垂直分割线 cellspacing="0" style="height:265px;border-left-style:solid; ...

    一、普通

    1、横线


    2、居中横线


    size=1>

    align

    线条位置(可选left、right、center);width线条长度;color颜色;size厚度

    二、特效(效果并不是孤立的,可相互组合)

    1、两头渐变透明


    SIZE=3>

    2、纺锤形


    color=#987cb9 SIZE=10>

    3、右边渐变透明


    color=#987cb9 SIZE=3>

    4、左边渐变透明


    color=#987cb9 SIZE=3>

    5、虚线


    color=#987cb9 SIZE=1>

    6、双线


    color=#987cb9 SIZE=3>

    7、立体效果


    width="80%" color=#987cb9 SIZE=1>

    8、钢针效果


    width="80%" color=#987cb9 SIZE=1>

    9、垂直分割线

    cellspacing="0" style="height:265px;border-left-style:solid;

    border-bottom-style:none;border-right-style:none;border-top-style:none">

    展开全文
  • 【吐槽】RecyclerView没有提供分割线的方法,想要个线还要自己画,点击事件的监听都要自己实现,不过真的好用。 给RecyclerView添加分割线的步骤 1、新建类继承于RecyclerView.ItemDecoration,此为是抽象类: ...
  • css怎么设置分割线

    2021-08-04 07:36:48
    css设置分割线的方法:首先创建一个HTML实例文件;然后在body中创建三个div;最后给第二个div设置样式为“padding-top:3px;width:40%;border-top:1px solid #666666;”即可。本文操作环境:windows7系统、HTML5&...
  • Python 菜单中的分割线

    2022-03-08 21:16:13
    有时候,⼀个菜单项的各个菜单可能并不是⼀个类型, 有可能是两种类型,在它们中间可以插⼀个分割线来界定界限。插⼊分割线和插⼊正常的菜单项操作很相似,只是使⽤ 的⽅法是 add_separator,该⽅法⽆需参数。测试...
  • css之分割线特效

    千次阅读 2022-05-15 21:12:28
    温馨小提示,下面的盒子用的都是... ... <div class="parent1"> <div class="div1">斜分割线</div> <div class="div2">SETTINGS</div> <div class="div3">HTML</div> <.
  • [CSS]几种实现分割线的方法

    千次阅读 2021-06-11 18:02:01
    HTML结构小小分隔线 单标签实现小小分隔线 巧用色实现小小分隔线 inline-block实现小小分隔线 浮动来实现———————————小小分隔线 字符来实现————————————对应的CSS.demo{width:600px}.line_01...
  • jquery列表分割线插件
  • 代码实现线条控件,一般使用QFrame来实现。 QPushButton* btn1 = new QPushButton("1",this); QPushButton* btn2 = new QPushButton("2",this); QPushButton* btn3 = new QPushButton("3",this);...
  • flutter listview 设置分割线

    千次阅读 2020-03-06 13:49:14
    喜欢可以Q群号:913934649,点赞,评论; 简书: https://www.jianshu.com/u/88db5f15770d csdn:https://me.csdn.net/beyondforme 掘金:https://juejin.im/user/5e09a9e86fb9a016271294a7
  • vue中分割线的实现

    万次阅读 2019-08-02 15:02:32
    项目中,需要实现分割线的效果,如图: 奈何 element 中的分割线用起来报错,无奈只好自己写,很简单,先说下原理: 给一个高为1像素的盒子,盒子宽度根据要求设定,再设置盒子颜色,排列方式为相对定位,盒子里...
  • css实现分割线或者小竖线

    千次阅读 2021-11-16 13:48:36
    .line{ display: inline-block; width: 2px; background-color: #999;... } 或者另一种思路在标签上伪元素 span::after { content:''; width: 2px; background-color: #999; margin: 8px 20px; }
  • echarts的Y轴的分割线以及线条样式

    千次阅读 2022-04-06 08:55:29
    yAxis: { splitNumber: 5, splitLine: { show: true, lineStyle: { type: 'dotted', color: 'rgba(255, 255, 255,0.3)' } } } ...splitNumber代表Y轴分割的段... lineStyle设置分割线的样式,type:'dotted’设置的
  • 前端html-常用分割线

    2021-06-30 14:05:15
    普通 <HR align=center width=300 color=#987cb9 SIZE=1> align 线条位置(可选left、right、center);width 线条长度;color 颜色;size 厚度 特效(效果并不是孤立的,可相互组合) 1、两头渐变透明: ...
  • 刚开始学习RecyclerView的时候我跟着一个视频学的,当时添加分割线是从外面导入一个Java类,然后使用里面的函数来创建分割线的,所以一直以来我都是这样做的。直到前几天才无意中发现,原来v7包中提供了一个...
  • 这次主要是介绍分割线的写法以及recyclerView的删除和添加功能。 本文参考链接: Android RecyclerView 使用完全解析 体验艺术般的控件ItemDecoration解析(一) getItemOffsetsRecyclerView 更新单个item时,闪烁...
  • 【Android】RecyclerView添加分割线最易懂解析 RecyclerView可以说是开发一个Android程序必不可少的一个控件,给它的item添加分割线也是一个几乎都会有的需求。但是,相对于曾经的ListView,RecyclerView添加分割线...
  • 在微信小程序开发的时候,有些需求是参照移动端开发来设计的,基本上微信小程序就是基于微信的移动端应用,所以基本上各种需求都和...这里分享两种写法,第一种直接画分割线,第二种用一个标签包一下再画分割线。 (1.
  • Recyclerview设置GridLayoutManager分割线

    千次阅读 2020-08-18 15:19:35
    public class GridSpaceItemDecoration extends RecyclerView.ItemDecoration { private int mSpanCount;//横条目数量 private int mRowSpacing;//行间距 private int mColumnSpacing;// 列间距 ...
  • 学习前端网页开发并将其应用于工作中已经两个月了,发现前端包括的内容真的是无比丰富,知识量巨大……漫漫长路远,尚需艰苦努力。...在网页设计中显示分割线可以使用元素的border单边显示即可,...
  • QT界面中添加分割线

    千次阅读 2020-03-17 14:08:26
    参考博客:https://blog.csdn.net/Superman___007/article/details/95168808?depth_1-utm_source=distribute.pc_relevant.none-task&utm_source=distribute.pc_relevant.none-task 我用的是大神的方法2,然后...
  • 一.flutter分割线divider中属性简介 const Divider({ Key? key, this.height, //分割线区域的高度 this.thickness, //分割线的厚度,即分割线的高度 this.indent, //起点缩进距离 this.endIndent, //终点...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 131,228
精华内容 52,491
关键字:

如何加分割线

友情链接: spcaview-windows.rar