iT邦幫忙

第 11 屆 iT 邦幫忙鐵人賽

DAY 15
0
Mobile Development

iOS Developer Learning Android系列 第 15

iOS Developer Learning Android. Lesson 15 - Buttons=[Radio,Chip,Switch,Toggle,Material] (輕鬆實現Tag功能)

本日效果

對照表☘️☘️☘️

Android iOS
RadioButton UISegment
Switch UISWitch
ToggleButton
Chip
MaterialButton UIButton

常用屬性與一些說明

  1. RadioButton
    1. 用個RadioGroup把很多RadioButton群組起來
    2. RadioGroup可以選擇要橫排還是直排
    3. 然後對RadioGroup去setOnCheckedChangeListener,裡面去switch radioButton的id
  2. Switch
    1. 無話可說
  3. ToggleButton
    1. 另一種Switch
    2. 可以設定textOff跟textOn
  4. Chip
    1. 可以拿來做Tag功能或Email裡的收件人
    2. 一樣用個ChipGroup把Chip都框起來,一樣有setOnCheckedChangeListener
    3. 如果要看是不是被打叉叉則是對Chip下setOnCloseIconClickListener
    4. Chip的style有四種
      1. Action
        1. 沒有選中狀態
        2. 想要被選要設clickable
      2. Filter
        1. 選中狀態是前面會打勾
        2. 不能顯示icon
      3. Entry
        1. 預設就有叉叉
        2. 打勾會跟icon重疊
      4. Choice
        1. 有選中狀態,但不會打勾
        2. 不能顯示icon
    5. Chip有個textAppearance屬性一定要設
    6. 如果設closeIconEnabled,不管是哪種Chip都會有叉叉
    7. 打叉不會自己消失,要setOnCloseIconClickListener去聽onClickListener(注意字不一樣),然後自己處理visibility
  5. MaterialButton
    1. 比較潮的Button
    2. 一定要在style屬性裡指定Material的theme,不然就閃給你看
      例如在XML裡設定< style name="AppThemeMaterial" parent="Theme.MaterialComponents.Light.DarkActionBar" >
    3. 可以用cornerRadius屬性直接設定圓角了
    4. 背景
      1. android:backgroundTint="@color/white"
      2. android:backgroundTintMode="multiply"
    5. 邊框
      1. app:strokeWidth="2dp"
      2. app:strokeColor="@color/green"
    6. 水波效果
      1. rippleColor

繼承關係

  1. RadioButton、Switch、ToggleButton、還有今天沒有介紹的CheckBox,都是繼承CompoundButton
    java.lang.Object
    ↳ android.view.View
    ↳ android.widget.TextView
    ↳ android.widget.Button
    ↳ android.widget.CompoundButton
    ↳ android.widget.RadioButton
  2. Chip
    java.lang.Object
    ↳ android.view.View
    ↳ android.widget.TextView
    ↳ android.widget.Button
    ↳ android.widget.CompoundButton
    ↳ android.widget.CheckBox
    ↳ androidx.appcompat.widget.AppCompatCheckBox
    ↳ com.google.android.material.chip.Chip
  3. MaterialButton
    java.lang.Object
    ↳ android.view.View
    ↳ android.widget.TextView
    ↳ android.widget.Button
    ↳ androidx.appcompat.widget.AppCompatButton
    ↳ com.google.android.material.button.MaterialButton

參考資料

今天的範例程式

可以去 https://github.com/mark33699/IDLA 看一下順便給顆⭐️


上一篇
iOS Developer Learning Android. Lesson 14 - SeekBar + ProgressBar (原生就有的SVProgressHUD)
下一篇
iOS Developer Learning Android. Lesson 16 - RecyclerView (這玩意可是跟UITableView差滿多的喔...)
系列文
iOS Developer Learning Android30

尚未有邦友留言

立即登入留言