1.RadioButton和CheckBox的差别:

a.单个RadioButton在选中后,通过点击无法变为未选中

单个CheckBox在选中后。通过点击能够变为未选中

b.一组RadioButton。仅仅能同一时候选中一个

一组CheckBox,能同一时候选中多个

c.RadioButton在大部分UI框架中默认都以圆形表示

CheckBox在大部分UI框架中默认都以矩形表示

2.RadioButton和RadioGroup的关系:

a.RadioButton表示单个圆形单选框。而RadioGroup是能够容纳多个RadioButton的容器

b.每一个RadioGroup中的RadioButton同一时候仅仅能有一个被选中

c.不同的RadioGroup中的RadioButton互不相干,即假设组A中有一个选中了,组B中依旧能够有一个被选中

d.大部分场合下,一个RadioGroup中至少有2个RadioButton

e.大部分场合下,一个RadioGroup中的RadioButton默认会有一个被选中。并建议您将它放在RadioGroup中的起始位置

3.简介完后,先来看一下本应用中的效果图吧:

简单的一个弹出pop,然后里面提供了四种订单的状态,实现起来也不难,闲来看一下xml代码吧:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="fill_parent"android:layout_height="fill_parent"android:id="@+id/rl_order_parent"android:orientation="vertical" ><RelativeLayoutandroid:id="@id/top_arrow"android:layout_width="fill_parent"android:layout_height="@dimen/height_title_bar" ><ImageViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_alignParentBottom="true"android:layout_centerHorizontal="true"android:src="@drawable/btn_sort_arrow" /></RelativeLayout><RadioGroupandroid:id="@+id/btn_sort"android:layout_width="fill_parent"android:layout_height="wrap_content"android:layout_below="@id/top_arrow"android:background="@drawable/btn_sort_bg"android:checkedButton="@id/btn_sort_unsigned"android:gravity="center"android:orientation="horizontal"android:padding="10.0dip" ><RadioButtonandroid:id="@+id/btn_sort_all"android:layout_width="0.0dip"android:layout_height="wrap_content"android:layout_weight="1.0"android:background="#00000000"android:button="@null"android:clickable="true"android:drawableTop="@drawable/btn_sort_all_selector"android:gravity="center"android:scaleType="matrix"android:text="@string/btn_sort_all"android:textColor="@color/grey_878787" /><RadioButtonandroid:id="@+id/btn_sort_unsigned"android:layout_width="0.0dip"android:layout_height="wrap_content"android:layout_weight="1.0"android:background="#00000000"android:button="@null"android:clickable="true"android:drawableTop="@drawable/btn_sort_unsigned_selector"android:gravity="center"android:scaleType="matrix"android:text="@string/btn_sort_unsigned"android:textColor="@color/blue_kuaidi100" /><RadioButtonandroid:id="@+id/btn_sort_signed"android:layout_width="0.0dip"android:layout_height="wrap_content"android:layout_weight="1.0"android:background="#00000000"android:button="@null"android:clickable="true"android:drawableTop="@drawable/btn_sort_signed_selector"android:gravity="center"android:scaleType="matrix"android:text="@string/btn_sort_signed"android:textColor="@color/grey_878787" /><RadioButtonandroid:id="@+id/btn_sort_recycle"android:layout_width="0.0dip"android:layout_height="wrap_content"android:layout_weight="1.0"android:background="#00000000"android:button="@null"android:clickable="true"android:drawableTop="@drawable/btn_sort_recycle_selector"android:gravity="center"android:scaleType="matrix"android:text="@string/btn_sort_recycle"android:textColor="@color/grey_878787" /></RadioGroup><Viewandroid:id="@+id/btn_grey_view"android:layout_width="fill_parent"android:layout_height="fill_parent"android:layout_below="@id/btn_sort"android:background="@color/black_7000" /></RelativeLayout>

从xml布局文件里,看出使用了radiogroup,而且包括了四个radiobutton。

这样便能够实现出那个弹出的popUpWindow.而且在RadioButton的图片中使用了状态选择器,分别在按下 选中和正常状态下,显示三种不同色值得图片,以一个为例。例如以下:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android"><item android:drawable="@drawable/btn_sort_signed_pressed" android:state_pressed="true"/><item android:drawable="@drawable/btn_sort_signed_selected" android:state_checked="true"/><item android:drawable="@drawable/btn_sort_signed_normal"/></selector>

java代码例如以下,代码里都有凝视。目測能够看明确:

/*** 显示签收状态的pop*/private void showOrderStatusPop() {if (orderStatusPopView == null) {orderStatusPopView = View.inflate(mContext, R.layout.pop_bill_sort,null);}initOrderStatusPopView();setCurrentCheckedItem();setOrderStatusPopViewListener();if (orderStatusPopupWindow == null) {orderStatusPopupWindow = new PopupWindow(orderStatusPopView,LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT);// 使其不聚集orderStatusPopupWindow.setFocusable(false);// 设置同意在外点击消失orderStatusPopupWindow.setOutsideTouchable(true);// 这个是为了点击“返回Back”也能使其消失,而且并不会影响你的背景orderStatusPopupWindow.setBackgroundDrawable(new BitmapDrawable());}int i = DensityUtil.dip2px(mContext, 60.0f);iv_arrow.setImageResource(R.drawable.arrow_up_float);orderStatusPopupWindow.showAsDropDown(top, 0, -i);}/*** 初始化订单状态控件*/private void initOrderStatusPopView() {rl_order_parent = (RelativeLayout) orderStatusPopView.findViewById(R.id.rl_order_parent);btn_sort = (RadioGroup) orderStatusPopView.findViewById(R.id.btn_sort);btn_sort_all = (RadioButton) orderStatusPopView.findViewById(R.id.btn_sort_all);btn_sort_unsigned = (RadioButton) orderStatusPopView.findViewById(R.id.btn_sort_unsigned);btn_sort_signed = (RadioButton) orderStatusPopView.findViewById(R.id.btn_sort_signed);btn_sort_recycle = (RadioButton) orderStatusPopView.findViewById(R.id.btn_sort_recycle);}/*** 设置订单状态的监听*/private void setOrderStatusPopViewListener() {rl_order_parent.setOnClickListener(this);btn_sort_all.setOnClickListener(this);btn_sort_unsigned.setOnClickListener(this);btn_sort_signed.setOnClickListener(this);btn_sort_recycle.setOnClickListener(this);//给radioGroup设置选中变化的监听。便于检測当前选中了哪个,方便下次再次显示回显btn_sort.setOnCheckedChangeListener(new OnCheckedChangeListener() {@Overridepublic void onCheckedChanged(RadioGroup group, int checkedId) {switch (checkedId) {case R.id.btn_sort_all:currentCheckedId = checkedId;break;case R.id.btn_sort_unsigned:currentCheckedId = checkedId;break;case R.id.btn_sort_signed:currentCheckedId = checkedId;break;case R.id.btn_sort_recycle:currentCheckedId = checkedId;break;}}});btn_sort.check(currentCheckedId);}/*** 设置当前显示的状态*/private void setCurrentCheckedItem() {switch (currentCheckedId) {case R.id.btn_sort_all:resetTextColor();btn_sort_all.setTextColor(mContext.getResources().getColor(R.color.blue_kuaidi100));break;case R.id.btn_sort_unsigned:resetTextColor();btn_sort_unsigned.setTextColor(mContext.getResources().getColor(R.color.blue_kuaidi100));break;case R.id.btn_sort_signed:resetTextColor();btn_sort_signed.setTextColor(mContext.getResources().getColor(R.color.blue_kuaidi100));break;case R.id.btn_sort_recycle:resetTextColor();btn_sort_recycle.setTextColor(mContext.getResources().getColor(R.color.blue_kuaidi100));break;}}/*** 重置文字颜色*/private void resetTextColor() {btn_sort_all.setTextColor(mContext.getResources().getColor(R.color.grey_878787));btn_sort_unsigned.setTextColor(mContext.getResources().getColor(R.color.grey_878787));btn_sort_signed.setTextColor(mContext.getResources().getColor(R.color.grey_878787));btn_sort_recycle.setTextColor(mContext.getResources().getColor(R.color.grey_878787));}

这样,便实现了一个pop的弹出和radioGroup radioButton的一个结合,事实上在实际应用中,底部使用RadioGroup的应用也不少,大同小异,关于这个小知识点就介绍到这了。

转载于:https://www.cnblogs.com/yutingliuyl/p/7275854.html

高仿快递100--实战之RadioGroup和RadioButton应用相关推荐

  1. 高仿微信APP实战(一)-Actionbar的制作与应用

    高仿微信APP实战(一)-Actionbar的制作与应用 本文是仿微信app实战系列的第一部分,先从简单的做起,边做边学习.从顶部actionbar开始,先看一下效果图: 一.定义主题样式 <r ...

  2. Flutter开发实战 高仿微信(二)发现页

    Flutter开发实战 高仿微信(二)发现页 Flutter开发实战 高仿微信(二)发现页 1.1 微信发现页面简述 1.2 APP框架优化 1.2.1 配置APP Logo和启动图片 1.2.2 配 ...

  3. R语言ggplot2可视化创建堆叠的柱状图(stacked barplot)并且每个堆叠的柱状图都缩放到总和为100%实战:最后所有的堆叠的柱子都一样高、Y轴以百分比的形式来显示

    R语言ggplot2可视化创建堆叠的柱状图(stacked barplot)并且每个堆叠的柱状图都缩放到总和为100%实战:最后所有的堆叠的柱子都一样高.Y轴以百分比的形式来显示 目录

  4. 是男人就下100层【第一层】——高仿微信界面(4)

    上一篇<是男人就下100层[第一层]--高仿微信界面(3)>中我们完成了登录,这一篇看完成登录后的一个短暂加载和引导界面. 加载界面: <RelativeLayout xmlns:a ...

  5. 是男人就下100层【第一层】——高仿微信界面(8)

    上一篇<是男人就下100层[第一层]--高仿微信界面(7)>中我们实现了下弹式菜单,这一篇我们来看看如何实现微信中的摇一摇功能. 首先我们来布局我们的摇一摇界面 布局文件如下: <? ...

  6. 是男人就下100层【第一层】——高仿微信界面(5)

    前面< 是男人就下100层[第一层]--高仿微信界面(4)>中我们已经完成了基本的引导界面和登录界面,这一篇中我们来看看登录后的主界面的布局和内容,来一步一步的完成该界面. 我们先来看看主 ...

  7. 是男人就下100层【第一层】——高仿微信界面(2)

    接着上一篇<是男人就下100层[第一层]--高仿微信界面(1)>,本打算实现上一篇文章中的第二个界面,这一篇先来实现一下登陆界面吧,接下来我们来开始登录界面的制作. 界面布局文件: < ...

  8. 是男人就下100层【第一层】——高仿微信界面(1)

    从今天开始将进行一个特别有趣且有意义的专栏<是男人就下100层>,计划对市面上比较火的应用进行高度仿照,并将开发过程贴出来,和大家交流和分享.由于时间关系可能进度会比较缓慢,但是任何事情如 ...

  9. 是男人就下100层【第一层】——高仿微信界面(3)

    上一篇<是男人就下100层[第一层]--高仿微信界面(2)>中实现了注册登录界面,这一篇来看看具体的登录界面实现,先来看看界面效果. 登录界面布局 <?xml version=&qu ...

最新文章

  1. 麦肯锡顾问的整体设计:从大局需要安排工作
  2. docker nginx部署web应用_docker部署Nginx
  3. ISC 2020技术日丨 网络空间危机四伏,如何发现威胁的蛛丝马迹?
  4. 汇编语言——《分支与循环程序设计》实验报告
  5. HTTP协议之http状态码详解
  6. python中类的参数怎么传_如何将整个类作为参数传递给另一个类的方法
  7. 腾讯AI Lab开源800万中文词的NLP数据集 | 资源
  8. leetcode 374. Guess Number Higher or Lower 、375. Guess Number Higher or Lower II
  9. PHP应用memcache函数详解
  10. excel中vlookup函数的使用方法_Excel中Vlookup——从入门到放弃
  11. 脉冲电子围栏在国家公园安全防护中的作用
  12. Scala 快查手册
  13. VS2019菜单栏的项目、生成、格式三个菜单栏不见了
  14. 知识图谱--实体关系抽取,依存句法分析
  15. qq聊天页面设置html,如何设置qq聊天窗口消息显示方式
  16. java从json数组中提取数据,从JSON数组中提取数据
  17. 刺激战场android闪退,绝地求生刺激战场闪退怎么办 游戏闪退解决办法一览
  18. PowerDesigner 修改table的颜色
  19. linux下u盘网卡驱动,通过u盘给linux安装网卡驱动的做法——深圳培训linux
  20. 简书 u盘安装linux,U盘安装Ubuntu18.04

热门文章

  1. symbian使用活动对象时返回-2147483647错误值的解决办法
  2. 使用jQuery实现全选、全不选、 反选(button)
  3. 在阿里云主机的Debian操作系统上安装Docker
  4. iOS之 开发学习笔记-block
  5. 关于lidroid xUtils 开源项目
  6. CVSNT Manual
  7. 一对电话线传输100M带宽不再是问题
  8. idea 添加配置文件 绿叶子
  9. 洛谷P5050 【模板】多项式多点求值
  10. Java集合(一) —— ArrayList