亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 系統 > Android > 正文

Android 自定義View實現任意布局的RadioGroup效果

2019-10-21 21:36:20
字體:
來源:轉載
供稿:網友

前言

RadioGroup是繼承LinearLayout,只支持橫向或者豎向兩種布局。所以在某些情況,比如多行多列布局,RadioGroup就并不適用 。

本篇文章通過繼承RelativeLayout實現自定義RadioGroup,實現RadioButton的任意布局。效果圖如下:

Android,View,任意布局,RadioGroup

代碼(RelativeRadioGroup)

/** * Author : BlackHao * Time : 2018/10/26 10:46 * Description : 自定義 RadioGroup */public class RelativeRadioGroup extends RelativeLayout implements CompoundButton.OnCheckedChangeListener {  private int checkId = -1;  private CompoundButton.OnCheckedChangeListener mChildOnCheckedChangeListener;  public RelativeRadioGroup(Context context) {    super(context);  }  public RelativeRadioGroup(Context context, AttributeSet attrs) {    super(context, attrs);  }  public RelativeRadioGroup(Context context, AttributeSet attrs, int defStyleAttr) {    super(context, attrs, defStyleAttr);  }  @Override  protected void onLayout(boolean changed, int l, int t, int r, int b) {    super.onLayout(changed, l, t, r, b);    //添加監聽    for (int i = 0; i < getChildCount(); i++) {      View v = getChildAt(i);      if (v instanceof RadioButton && !(v instanceof CompoundButton.OnCheckedChangeListener)) {        ((RadioButton) v).setOnCheckedChangeListener(this);      }    }  }  @Override  public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {    setCheck(buttonView.getId(), isChecked);  }  public void check(@IdRes int checkId) {    if (checkId == -1 || this.checkId == checkId) {      return;    }    setCheck(checkId, true);  }  public void clearCheck() {    setCheck(-1, false);  }  public int getCheckedRadioButtonId() {    return this.checkId;  }  /**   * 設置選中狀態   */  private void setCheck(@IdRes int checkId, boolean isChecked) {    if (checkId != -1 && this.checkId == checkId) {      return;    }    if (checkId != -1) {      CompoundButton view = (CompoundButton) findViewById(checkId);      //未選中的RadioButton被選中      if (checkId != this.checkId && isChecked) {        this.checkId = checkId;        if (mChildOnCheckedChangeListener != null) {          mChildOnCheckedChangeListener.onCheckedChanged(view, true);        }        //某個RadioButton被選中,將其他的改為未選中        for (int i = 0; i < getChildCount(); i++) {          View v = getChildAt(i);          if (v instanceof RadioButton && v.getId() != checkId) {            ((RadioButton) v).setChecked(false);          } else if (v instanceof RadioButton && v.getId() == checkId) {            ((RadioButton) v).setChecked(true);          }        }      }      //被選中的RadioButton被取消選中      if (checkId == this.checkId && !isChecked) {        this.checkId = checkId;        if (mChildOnCheckedChangeListener != null) {          mChildOnCheckedChangeListener.onCheckedChanged(view, false);        }      }    } else {      //清空所有選擇      if (this.checkId != -1) {        this.checkId = -1;        CompoundButton view = (CompoundButton) findViewById(this.checkId);        //將選中的置為未選中        if (view instanceof RadioButton) {          view.setChecked(false);        }      }    }  }  public void setOnCheckedChangeListener(CompoundButton.OnCheckedChangeListener mChildOnCheckedChangeListener) {    this.mChildOnCheckedChangeListener = mChildOnCheckedChangeListener;  }}

代碼并沒有太多,也很容易理解。有什么不明白的可以留言。

1、下載地址 : https://github.com/LuoChen-Hao/BlackHaoCustomView

總結

以上所述是小編給大家介紹的Android 自定義View實現任意布局的RadioGroup效果,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對VEVB武林網網站的支持!


注:相關教程知識閱讀請移步到Android開發頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美激情小视频| 这里只有视频精品| 亚洲国产中文字幕久久网| 神马国产精品影院av| 日韩电影在线观看中文字幕| 精品亚洲国产成av人片传媒| 欧美精品久久一区二区| 久久精品99无色码中文字幕| 久久久久久久一区二区| 成人女保姆的销魂服务| 久久国产精品久久精品| 亚洲欧美日韩久久久久久| 国产精品视频区| 欧美日韩激情网| 国产999精品久久久影片官网| 欧洲亚洲在线视频| 久热精品视频在线| 亚洲精品美女网站| 亚洲欧美日韩精品久久亚洲区| 国内精品视频在线| 国产成人精品一区二区三区| 97在线看福利| 国产精品视频网| 亚洲欧美国产高清va在线播| 国产精品久久久久高潮| 国产美女精品视频| 97久久久久久| 91热福利电影| 性色av香蕉一区二区| 欧美国产日韩一区二区在线观看| 视频在线一区二区| 精品久久在线播放| 成人羞羞国产免费| 国产在线视频欧美| 6080yy精品一区二区三区| 欧美猛交ⅹxxx乱大交视频| 欧美诱惑福利视频| 成人综合国产精品| 国产亚洲欧美另类中文| 日本高清不卡的在线| 日本久久久久久久久| 欧美精品999| 成人做爽爽免费视频| 成人激情在线播放| 亚洲最大的成人网| 亚洲最大福利视频网站| 青青草国产精品一区二区| 国产不卡视频在线| 91欧美日韩一区| 国产综合福利在线| 午夜精品一区二区三区在线视| 啊v视频在线一区二区三区| 亚洲成人av片在线观看| 亚洲人成网站免费播放| 日韩电影在线观看永久视频免费网站| 不卡av在线播放| 国产一区二区三区视频免费| 91人人爽人人爽人人精88v| 尤物九九久久国产精品的特点| 久久亚洲精品一区二区| 国产精品久久久久久久电影| 这里只有精品久久| 亚洲久久久久久久久久久| 亚洲第一免费播放区| 亚洲色图激情小说| 久久亚洲精品成人| 欧美亚洲国产另类| 成人av资源在线播放| 亚洲成人动漫在线播放| 欧美中文在线观看国产| 亚洲另类激情图| 在线观看国产精品91| 亚洲精品国产精品自产a区红杏吧| 国产精品一区二区三区久久久| 成人激情视频在线播放| 国产剧情久久久久久| 亚洲人成电影在线观看天堂色| 91人成网站www| 久久人人爽国产| 欧美寡妇偷汉性猛交| 国产一区二区精品丝袜| 中文字幕国产精品久久| 成人国产精品av| 欧美成人第一页| 最近2019年好看中文字幕视频| 国产欧美一区二区| 成人一区二区电影| 国产成人精品999| 久久亚洲国产精品| 欧美性受xxxx黑人猛交| 亚洲国产又黄又爽女人高潮的| 日韩免费中文字幕| 日韩免费观看av| 中文字幕亚洲精品| 成人网在线观看| 91av视频导航| 亚洲国产一区自拍| 日本成人免费在线| 亚洲欧美三级在线| 亚洲欧美在线第一页| 日韩a**中文字幕| 成人黄色午夜影院| 国产一区二区三区三区在线观看| 久久久久久久97| 日韩成人免费视频| 日韩精品视频在线播放| 91国内免费在线视频| 91亚洲精品久久久久久久久久久久| 欧洲中文字幕国产精品| 国产精品狼人色视频一区| 亚洲午夜精品久久久久久久久久久久| 中文字幕亚洲无线码在线一区| 欧美视频一区二区三区…| 亲爱的老师9免费观看全集电视剧| 57pao国产精品一区| 亚洲wwwav| 亚洲女成人图区| 91伊人影院在线播放| 日韩精品免费在线观看| 日韩中文字幕在线精品| 欧美福利视频在线观看| 91精品视频在线看| 亚洲色图第三页| 91探花福利精品国产自产在线| 国产精品久久99久久| 国产成人精品av在线| 国产中文字幕日韩| 最新的欧美黄色| 亚洲v日韩v综合v精品v| 在线亚洲国产精品网| 97国产在线视频| 午夜精品久久久久久久久久久久久| 国产成人精品综合| 欧美与黑人午夜性猛交久久久| 精品久久久91| 亚洲国产成人精品久久久国产成人一区| 欧美丝袜美女中出在线| 亚洲毛片在线免费观看| 欧美性色视频在线| 亚洲欧洲在线免费| 欧美日韩精品在线播放| 欧美日韩国产专区| 中文在线资源观看视频网站免费不卡| 欧美成年人视频网站| 热99精品只有里视频精品| 91精品久久久久久综合乱菊| 高清一区二区三区四区五区| 国产精品com| 欧美亚洲视频一区二区| 欧美激情在线播放| 日韩欧美在线视频| 日本中文字幕成人| 狠狠躁夜夜躁久久躁别揉| 黄色成人av网| 亚洲国产精品久久久久| 亚洲国产精品va在线看黑人动漫| 久久久久亚洲精品国产| 97国产精品人人爽人人做| 日韩中文字幕视频| 国产丝袜精品第一页| 粗暴蹂躏中文一区二区三区| 人九九综合九九宗合| 人九九综合九九宗合| 中文字幕一精品亚洲无线一区|