自定义分类单选控件

中文

a simple SegmentControl Widget

[图片上传失败...(image-4f6a2c-1562400026419)]

[图片上传失败...(image-8f05ac-1562400026419)]

[图片上传失败...(image-37550c-1562400026419)]

使用:

添加依赖到build.gradle:

dependencies {
    implementation 'com.zxn.segmentcontrol:segment-control:1.0.0'
}

相关属性:

  • selectedColor 设置选中后的颜色

  • normalColor 设置未选中的颜色

  • textColors 设置文字内容的颜色,可以使用ColorStateList来设置选中和未选中的颜色,这个属性设置以后,之前设置的selectedColor和normalColor对文字内容失去作用

  • backgroundColors 设置边框、选中的背景和分割线的颜色,可以使用ColorStateList来同事设置选中和未选中的颜色,和textColors一样,设置这个属性后,selectedColor和normalColor会对边框和背景失去作用

  • selectedDrawable 设置选中后的选中的背景图,设置后selectedColor会失效,backgroundColors中选中时的颜色会失效.

  • cornerRadius 设置背景的圆角半径,默认没有圆角.

  • boundWidth 设置边框的粗细

  • separatorWidth 设置分割线的粗细

  • texts 设置文字内容,通过'|'分隔开

  • verticalGap 纵向上的边距

  • horizonGap 横向的边距

横向的用法

<com.zxn.segmentcontrol.SegmentControl
    android:id="@+id/segment_control"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:orientation="horizontal"
    android:textSize="13sp"
    app:cornerRadius="5dip"
    app:horizonGap="8dip"
    app:normalColor="#FFFFFF"
    app:selectedColor="#0099CC"
    app:texts="啊啊|啦啦啦|哈哈哈|顶顶顶顶"
    app:verticalGap="8dip" />

纵向的用法

<com.zxn.segmentcontrol.SegmentControl
    android:id="@+id/sc_vertical"
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:layout_marginTop="20dp"
    android:layout_weight="1"
    android:orientation="vertical"
    android:textSize="14sp"
    app:backgroundColors="@color/bg_color_sc_region"
    app:boundWidth="0dp"
    app:cornerRadius="0dp"
    app:selectedDrawable="@drawable/bg_rb_d_single_checked"
    app:separatorWidth="0dp"
    app:textColors="@color/text_color_sc_rgion"
    app:verticalGap="20dp" />

使用OnSegmentControlClickListener来监听选中的变换

mSegmentHorzontal = (SegmentControl) findViewById(R.id.segment_control);
mSegmentHorzontal.setOnSegmentControlClickListener(new SegmentControl.OnSegmentControlClickListener() {
    @Override
    public void onSegmentControlClick(int index) {
        Log.i(TAG, "onSegmentControlClick: index = " + index);
    }
});

代码设置填充数据类:

String[] names = {"富贵厅", "吉祥厅", "状元厅", "安宁厅", "双喜厅", "状元厅"};
segmentInfoList = new ArrayList<>();
for (int i = 0; i < names.length; i++) {
    FoodInfo foodInfo = new FoodInfo();
    foodInfo.name = names[i];
    segmentInfoList.add(foodInfo);
}

sc_vertical.setNewData(segmentInfoList);
sc_vertical.setSelectedIndex(0);

推荐阅读更多精彩内容

  • 一、CSS入门 1、css选择器 选择器的作用是“用于确定(选定)要进行样式设定的标签(元素)”。 有若干种形式的...
    宠辱不惊丶岁月静好阅读 236评论 0 1
  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 3,660评论 0 12
  • 1、属性选择器:id选择器 # 通过id 来选择类名选择器 . 通过类名来选择属性选择器 ...
    圆圆和方方阅读 442评论 0 7
  • 浏览器与服务器的基本概念 浏览器(安装在电脑里面的一个软件) 作用: ①将网页内容渲染呈现给用户查看。 ②让用户通...
    云还灬阅读 50评论 0 0
  • day01­_起源和结构 结构:Xhtml xml 表现:CSS 行为:DOM ECMAScript 以上都属于W...
    Sakura_明妃阅读 55评论 0 1