【MaterialEditText】 Material Design 的 EditText

MaterialEditText

隨着 Material Design 的到來, AppCompat v21 中也提供了 Material Design 的控件外觀支持,其中包括 EditText 。但 AppCompat 中的 EditText 實在有點難用,由於它是經過 colorAccent 來自動爲控件着色的,並無提供設置顏色的api,所以須要經過爲控件定製theme的方式來實現自定義控件顏色。 另外,除了外觀上的變化, AppCompat 沒有提供任何 Google Material Design Spec 中提到的特性。因而我便作了這個庫: MaterialEditText 。(其實前段時間已經作好了一個簡單的版本自用,只等着谷歌發佈新SDK,在發現新SDK中沒有給出我期待的支持後,才把控件從新打造,作成了如今的版本)html


特性和使用方式:

  • 基本使用

在佈局文件中把 EditText 替換爲 com.rengwuxian.materialedittext.MaterialEditText 就好了。MaterialEditText 是直接繼承的 EditText ,沒有加入一些 Wrapper Layout , 所以多數狀況下你不須要修改 java 文件。java

<com.rengwuxian.materialedittext.MaterialEditText
  android:layout_width="match_parent"
  android:layout_height="wrap_content"
  android:hint="Basic"/>

Basic

  • 自定義Base Color

Base Color 被用做背景線的顏色、主字體的顏色(透明度被重置爲87%)和提示字體的顏色(透明度被重置爲26%)。你能夠使用 app:baseColor(xml) 或者 setBaseColor()(java) 來指定 Base Color 。Base Color 的默認值爲純黑。android

app:baseColor="#0056d3"

BaseColor

  • 自定義Primary Color

Primary Color 被用做激活狀態的輸入框背景色、高亮的Floating Label色和底部省略號的顏色。你能夠使用 app:primaryColor (xml) 或者 setPrimaryColor()(java) 來指定 Primary Color。若是沒有設置Primary Color,默認將使用 Base Color 來替代。git

app:baseColor="#0056d3"
app:primaryColor="#982360"

PrimaryColor

  • Floating Label

Floating Label 有三種模式: none , normal , highlight 。 你能夠使用 app:floatingLabel (xml) 或者 setFloatingLabel() (java) 來設置 Floating Label 的模式。github

normal:api

app:floatingLabel="normal"

FloatingLabel

highlight:app

app:floatingLabel="highlight"

HighlightFloatingLabel

  • 底部省略號

當設置顯示底部省略號後,控件會在文字向左滾動時在底部左側顯示一個三個點的省略號,點擊省略號將自動把光標置於字符串的開始處。你能夠經過 app:singleLineEllipsis=true (xml) 或者 setSingleLineEllipsis() (java) 來設置它。這個屬性將自動設置 android:singleLine 爲 true。佈局

注意:底部省略號會自動增大控件底部的高度。post

app:singleLineEllipsis="true"

SingLineEllipsis

  • 字符數限制

設置字符數限制後,控件右下角會顯示已輸入字符數和最大字符數的角標,並在超過限制後顯示警告色(默認爲紅色)。 你能夠經過 app:maxCharacters (xml) 或者 setMaxCharacters() (java) 來設置字符數,經過 app:errorColor 或者 setErrorColor() (java) 來自定義警告色。字體

注意:字符數角標會自動增大控件底部的高度。

默認 error color:

app:maxCharacters="10"

MaxCharacters

自定義 error color:

app:maxCharacters="10"
app:errorColor="#ddaa00"

CustomErrorColor


github地址: MaterialEditText

library下載:MaterialEditText-1.0.0.aar

sample下載:MaterialEditText-1.0.0-sample.apk

本文同步發至個人我的博客和開源中國

相關文章
相關標籤/搜索