iT邦幫忙

第 11 屆 iT 邦幫忙鐵人賽

DAY 10
0
Mobile Development

iOS Developer Learning Android系列 第 10

iOS Developer Learning Android. Lesson 10 - TextView + EditText (不用寫code就可做到跑馬燈跟UITextView自動長高)

從今天開始就是元件篇囉
一開始先來張圖嚇嚇你們
圖片網址

好!安卓贏了~我們明天見!


.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
不好笑

言歸正傳,趕快進入今天的主題

跑馬燈

textView自動長高

這兩個部分只要參考下面的屬性在XML設置即可~

對照表☘️☘️☘️

Android iOS
TextView UILabel
EditText UITextField

常用屬性與一些說明

  1. TextView
    1. text//顯示文字
    2. textSize//文字大小
    3. textColor//文字顏色
    4. background//背景顏色
    5. textAlignment//水平對齊
    6. gravity//垂直對齊
    7. ellipsize//字數不足時的處理方式
      1. start//點點點出現在左邊
      2. end//點點點出現在右邊
      3. middle//點點點出現在中間
      4. none//不出現點點點
      5. marquee//可以直接變成水平跑馬燈⚠️⚠️⚠️
        1. 要出現跑馬燈效果還要搭配以下屬性(缺一不可)
          android:focusable="true"
          android:focusableInTouchMode="true"
          android:marqueeRepeatLimit="marquee_forever"
          android:scrollHorizontally="true"
          android:singleLine="true"
        2. 一定要用singleLine="true", 不能用lines="1"
        3. 一定要單行, 多行跑不了
  2. EditText
    1. inputType//輸入類型
      1. textPassword
      2. numberPassword
      3. number
      4. date跟datetime不會跳出時間選擇器,應該是要搭配其他設定,之後明天講時間相關控件再研究
      5. etc...
    2. ems//如果寬度為wrap_content, 一般來說會跟文字內容一樣寬, 而設定ems就是固定寬度為:幾個數字*2的寬度⚠️⚠️⚠️
    3. maxLength//設定最多輸入幾個字(中文也是)⚠️⚠️⚠️很方便
    4. editable//可否編輯,但被棄用了,查網路看到說用inputType="none",但我試不work。另外看到一招但比較麻煩:android:clickable="false"
      android:cursorVisible="false"
      android:focusable="false"
      android:focusableInTouchMode="false"
    5. selectAllOnFocus//一點就全選⚠️⚠️⚠️
    6. hint//就是placeholder☘️☘️☘️
    7. 在Android,輸入框是沒有分成像UITextField跟UITextView兩個元件,用EditText就可以達到跟UITextView一樣的效果了⚠️⚠️⚠️,如下:
      android:layout_height="wrap_content"
      android:inputType="textMultiLine"
      android:minLines="3"//一開始畫面顯示幾行
      android:maxLines="5"//自動長高到幾行,超過後就有捲軸⚠️⚠️⚠️也很方便❤️
      android:gravity="top"
      android:scrollbars="vertical"//設水平的無效

繼承關係

  1. TextView
    java.lang.Object
    ↳ android.view. View
    ↳ android.widget.TextView
  2. EditView
    java.lang.Object
    ↳ android.view.View
    ↳ android.widget.TextView
    ↳ android.widget.EditText

可以看到這邊雖然跟iOS一樣都繼承自UIView,但中間卻沒有一層UIContrl⚠️⚠️⚠️

一些其他差異⚠️⚠️⚠️

  1. 顏色可以直接打網頁色碼耶~❤️
  2. 單位除了dp還有很多種...
  3. 如果是LinearLayout,會自動把editText往上推❤️,但如果用ConstraintLayout的話還是以Constraint為主

參考資料

今天的範例程式

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


如果你喜歡我的影片別忘了按讚分享加訂閱,開啟紅色的小鈴鐺,我們明天見~


上一篇
iOS Developer Learning Android. Lesson 09 - ConstraintLayout (安卓版的AutoLayout揪淨還多了哪些東西?)
下一篇
iOS Developer Learning Android. Lesson 11 - Button + Dialog (感受一下使用原生鏈式編程彈出Alert吧)
系列文
iOS Developer Learning Android30

尚未有邦友留言

立即登入留言