Material Design兼容包的使用

为了方便自己以后的查找,于是就写了这个博客,废话就不多说,开始干:

导入: compile ‘com.android.support:appcompat-v7:24.2.1’ compile ‘com.android.support:design:24.2.1’ (最后的版本号最好和上面的V7包的版本号改成一样的,以免报一些不必要的错误)

Design Support Library中有包含8个控件: itdadao

1.TextInputLayout

正如上面所描述的,他是一个强大的带提示的MD风格的EditText itdadao

布局:

android.support.design.widget.TextInputLayout         android:layout_width=”match_parent” android:layout_height=”wrap_content” app:counterMaxLength=”10” app:counterEnabled=”true” app:errorEnabled=”false” app:hintAnimationEnabled=”true” android:id=”@+id/til_acc”>

    EditText
        android:layout_width="match_parent"
        android:layout_height="100px"
        android:hint="请输入账号"
        android:id="@+id/et_acc"/>
/android.support.design.widget.TextInputLayout>

TextInputLayout的带的属性: 1. counterMaxLength  计数器  显示在右下角 2. counterEnabled  是否显示计数器 (true  、false两个值) 3. counterOverflowTextAppearance 当输入的长度大于计算器的大小,则显示最大限度的字体格式 4. hintAnimationEnabled 是否启用hint(提示字体)动画效果 5. errorEnabled 是否显示错误信息 6. errorTextAppearance 错误信息的字体的格式

MainActivity中的代码:

public class MainActivity extends AppCompatActivity {

@InjectView(R.id.btn)
Button btn;www.90168.org
@InjectView(R.id.activity_main)
LinearLayout activityMain;
@InjectView(R.id.et_acc)
EditText etAcc;
@InjectView(R.id.et_pws)
EditText etPws;
@InjectView(R.id.til_acc)
TextInputLayout tilAcc;


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    ButterKnife.inject(this);
    init();
}

private void init() {
    //EditView 监听
    etAcc.addTextChangedListener(new TextWatcher() {
        //输入前的监听
        @Override
        public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {

        }
        //输入中的监听
        @Override
        public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
                    //判断输入中的字符串是否大于 我们计数器设置的大小
                if (charSequence.length() > 5){// 大于
                    //setErrorEnabled 设置true   并且设置显示错误的信息
                    tilAcc.setErrorEnabled(true);
                    tilAcc.setError("sssssss");
                }else{
                    //小于  则把setErrorEnabled设置成false
                    tilAcc.setErrorEnabled(false);
                }
        }
        //输入后的监听
        @Override
        public void afterTextChanged(Editable editable) {

        }
    });
    btn.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(final View view) {
            final String acc = etAcc.getText().toString();
            final String pws = etPws.getText().toString();
            if (!TextUtils.isEmpty(acc) && !TextUtils.isEmpty(pws)) {
                Snackbar.make(view, "登录成功", Snackbar.LENGTH_SHORT).show();
            }
        }
    });
}

}

原文地址:https://www.cnblogs.com/tianshifu/p/6215190.html