最新消息:文章中包含代码时,请遵守代码高亮规范!

Android Design包之TextInputLayout和TextInputEditText的组合使用【原创】

Android 李, 泰愚 208浏览 0评论

在Android的日常开发中,EditText是个不可或缺的控件之一,作为输入框,用法也没什么太多值得可说的,拿一个简单的登录界面为例,平时差不多是这样的布局:

一般来说是这样,EditText里面的hint属性作为提示语,但是一旦输入的时候,提示语就会消失,另外对于不合法的输入我们一般来说会采用Toast的方式来进行提示。那么接下来看看采用design包中的TextInputLayout和TextInputEditText组合使用的效果,同样是这个登录界面:

可以看到明显的区别,这里,我们的hint提示语默认也是在输入框的,但是当你点击输入框进行输入的时候,提示语会有一个上移变小且变色的效果,移动到输入框左上方,另外在代码里对TextInputLayout进行setError进行提示语的显示。对于setError这个方法,EditText也是具有的,只是另一种提示效果而已。

通过接触的这两个控件,发现design包中的控件值得学习的还有很多,自己还得慢慢去学习使用。最后是代码:

布局文件:

<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.LinearLayoutCompat xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

        <android.support.v7.widget.LinearLayoutCompat
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:fitsSystemWindows="true"
            android:orientation="vertical"
            android:paddingLeft="24dp"
            android:paddingRight="24dp"
            android:paddingTop="56dp">

            <android.support.design.widget.TextInputLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginBottom="8dp"
                android:layout_marginTop="8dp">

                <android.support.design.widget.TextInputEditText
                    android:id="@+id/edit_sign_in_email"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:hint="邮箱"
                    android:inputType="textEmailAddress" />
            </android.support.design.widget.TextInputLayout>

            <android.support.design.widget.TextInputLayout
                android:id="@+id/txtlayout"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginBottom="8dp"
                android:layout_marginTop="8dp"
                >

                <android.support.design.widget.TextInputEditText
                    android:id="@+id/edit_sign_in_password"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:hint="密码"
                    android:inputType="textPassword" />

            </android.support.design.widget.TextInputLayout>

            <android.support.v7.widget.AppCompatButton
                android:id="@+id/btn_sign_in"
                android:onClick="test"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginBottom="24dp"
                android:layout_marginTop="24dp"
                android:background="@android:color/holo_orange_dark"
                android:gravity="center"
                android:padding="12dp"
                android:text="登录"
                android:textColor="@android:color/white" />

        </android.support.v7.widget.LinearLayoutCompat>
</android.support.v7.widget.LinearLayoutCompat>

activity中的代码:

public class MainActivity extends AppCompatActivity {

    EditText mPassword;

    TextInputLayout mLayout;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        mPassword = (EditText) findViewById(R.id.edit_sign_in_password);
        mLayout = (TextInputLayout) findViewById(R.id.txtlayout);
    }

    public void test(View view) {
        String password = mPassword.getText().toString().trim();

        if (password.isEmpty() || password.length() < 6) {
            mLayout.setError("密码长度不可少于6位");
        }
    }
}

转载时请注明出处及相应链接,本文永久地址:http://blog.it985.com/22502.html


pay_weixin
pay_weixin
微信打赏
pay_weixin
支付宝打赏
感谢您对作者rick的打赏,我们会更加努力!    如果您想成为作者,请点我

您必须 登录 才能发表评论!