前言:最近自己想要做乙個畢業**的營銷實驗,不知道能不能實現自己最終的目標。但很多事光想並沒有什麼用,還是需要我們一步步得去做。對我來說也是一種鍛鍊吧。希望自己的努力會有好的結果。因為**導師說,做不好連**開題答辯都不給我去了。哈哈哈,不用這麼狠吧。
最近感覺很多人會把自己放到乙個框架下去成長,每當我和別人發現我學習程式設計,他們會說你不是阿里巴巴商學院的學生嘛,怎麼在學習程式設計?
每當我和別人談我外聯的經歷或者對商業的一點點思考,他們會很驚訝的問我,你不是做技術,學程式設計的嗎?怎麼在做這些。
我覺得我不應該活在乙個條條框框下,誰說我不能去涉及多個領域,或者要求我只能有乙個興趣愛好。我相信很多技能它們都是有交叉的領域的,乙個領域的知識能夠為另乙個領域有所幫助和啟發。所以,我並不覺得對商業的熱衷和對技術的學習有任何衝突的地方。
不知道這些觀點對不對,但我依然會堅持自己的許多個人愛好,去不斷學習和思考。即使有人會說我不專注,難成為乙個領域的專家。
行動派。
昨晚看到乙個關於textinputlayout的介紹,感覺簡直太酷了。所以想寫一篇關於textinputlayout的文章,來介紹這個控制項。
google在2015的io大會上,給我們帶來了更加詳細的material design設計規範,同時,也給我們帶來了全新的android design support library,在這個support庫裡面,google給我們提供了更加規範的md設計風格的控制項。最重要的是,android design support library的相容性更廣,直接可以向下相容到android 2.2。這不得不說是乙個良心之作。
記得很早接觸android的時候就接觸了md設計風格,感覺其中帶來的控制項都是十分簡約好看的,當初玩cardview就覺得簡直發現新大陸,原來可以這麼簡單的做出這麼簡約的介面。
接下來,我們就來接觸一下textinputlayout,md設計風格裡的乙個很酷炫的控制項。
這是今天的乙個demo效果圖,我們將通過這個demo效果的實現,去領略textinputlayout的酷炫。
首先我們先要注入依賴:
dependencies )
compile 'com.android.support:appcompat-v7:24.2.1'
testcompile 'junit:junit:4.12'
// 注入design的依賴,textinputlayout就在這個中
compile 'com.android.support:design:24.2.1'}
在注入依賴以後,我們開始動手寫我們的布局吧,我會盡力把知識點以注釋的形式寫在**中,為了讓大家看**的時候能夠有更清晰的邏輯。
-->
這裡主要來說一下textinputlayout的一些屬性:
counterenabled :用來設定是否進行計數的,就是我們右下角這個0/5
countermaxlength:用來設定計數的最大長度
counteroverflowtextappearance:用來設定當我們的輸入長度超過我們指定的最大長度時的乙個樣式
errortextappearance:用來設定輸入錯誤時的樣式
接下來看一下我們的**邏輯,其實很簡單,就是例項化、然後給edittext新增乙個***,然後進行一定的業務邏輯判斷。
package com.example.vicky.singletonpattern;
import android.support.design.widget.textinputlayout;
import android.support.v7.app.appcompatactivity;
import android.os.bundle;
import android.text.editable;
import android.text.textutils;
import android.text.textwatcher;
import android.util.patterns;
import android.view.view;
import android.widget.edittext;
import com.example.vicky.singletonpattern.singletonpattern.singleclass;
public class mainactivity extends appcompatactivity
/*** 判斷使用者名稱是否可用
* @return
*/public boolean isnamevalid()
// 一定要在之後呼叫seterrorenabled(false);,不然錯誤提示會一直在
textinputlayout.seterrorenabled(false);
return true;
}public boolean ispasswordvalid()
textinputlayout2.seterrorenabled(false);
return true;
}public boolean isemailvalid()
textinputlayout3.seterrorenabled(false);
return true;
}// 自定義edittext的***。
private class mytextwatcher implements textwatcher
@override
public void beforetextchanged(charsequence s, int start, int count, int after)
@override
public void ontextchanged(charsequence s, int start, int before, int count)
@override
public void aftertextchanged(editable s) }}
}只用通過textinputlayout對edittext進行包裹就能實現酷炫的登入介面效果,其實蠻值得我們去認真一下md設計中的所有新的控制項。
koa generic session 使用教程
本系列是我的常用 koa 中介軟體使用筆記,防止忘記使用方法而作記錄 koa generic session 需要使用 koa redis作為儲存入口,需要安裝並引用。const koa require koa const session require koa generic session co...
pytorch dataloader使用教程
dataloader是pytorch之中可以靈活地取出數值的乙個相應類,首先需要將自己使用的資料用dataset封裝起來,然後打包成為dataloader變數進行操作 import torch from torch.utils.data import dataset,dataloader x tor...
Spring Cloud Sleuth 使用教程
span術語 terminology span 基本工作單元,例如,在乙個新建的span中傳送乙個rpc等同於傳送乙個回應請求給rpc,span通過乙個64位id唯一標識,trace以另乙個64位id表示,span還有其他資料資訊,比如摘要 時間戳事件 關鍵值注釋 tags span的id 以及進度...