9

Tôi đang cố gắng để làm một cái gì đó trên những dòng này:Hiện Helper văn bản dưới đây EditText cùng với Gợi ý

EditText example

tôi có thể hiển thị các gợi ý sử dụng android:hint="Email Address" nhưng không thể hiển thị văn bản helper - này sẽ là tên người dùng email của bạn

<android.support.design.widget.TextInputLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content"> 

     <EditText 
      android:id="@+id/et_username" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:ems="15" 
      android:hint="Username" 
      app:et_helper="Username is preferably your registered email"/> 

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

Những gì tôi nhận được chỉ là và không tên đăng nhập là tốt nhất email đăng ký của bạn dưới EditText:

Output:

output

Bất kỳ con trỏ đánh giá cao. Cảm ơn bạn.

+0

trùng lặp có thể xảy ra của [Android thêm placeholder văn bản để EditText] (http://stackoverflow.com/questions/8221072/android-add-placeholder-text-to-edittext) –

+0

"này sẽ là của bạn tên người dùng "là nó cũng là một giữ chỗ ?? – curiousMind

+0

Những gì bạn đang tìm kiếm là một văn bản chỉnh sửa nhãn nổi. – noev

Trả lời

18

Cách tốt nhất là sử dụng TextInputLayout. Google đã giới thiệu nó trong thư viện thiết kế mới. Để sử dụng các TextInputLayout bạn phải thêm dòng sau vào phụ thuộc build.gradle của bạn:

compile 'com.android.support:design:22.2.0' 

Sau đó, sử dụng nó trong file xml của bạn:

<android.support.design.widget.TextInputLayout 
android:id="@+id/textInputLayout" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content"> 

<EditText 
    android:id="@+id/editText" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:hint="Enter your name"/> 
</android.support.design.widget.TextInputLayout> 

Bạn có thể đặt văn bản của bạn bằng cách thiết lập lỗi đúng . Đủ để hiển thị lỗi nhưng nó phù hợp để bạn sử dụng. Bạn có thể thay đổi màu sắc và kiểu chữ nếu muốn.

TextInputLayout til = (TextInputLayout) findViewById(R.id.textInputLayout); 
til.setErrorEnabled(true); 
til.setError("You need to enter a name"); 

enter image description here

+0

Làm cách nào để thay đổi màu văn bản lỗi? –

+3

@AdarshYadav tạo kiểu tùy chỉnh sử dụng '@android: style/TextAppearance' làm cha mẹ trong tệp styles.xml của bạn và sử dụng nó trong tiện ích TextInputLayout của bạn' app: errorTextAppearance' –

0

tôi đã hỏi câu hỏi tương tự here. Nếu bạn muốn giữ hai chế độ xem EditText cùng nhau đóng theo chiều dọc trong LinearLayout, tôi nghĩ không có cách nào. Một cách, tôi nghĩ, là bạn có thể đặt android: gravity của EditText trên cùng thành 'bottom' và 'top' thành EditText thấp hơn. Nhưng trong RelativeLayout, điều này sẽ dễ dàng.

TextInputLayout có thể được sử dụng nếu bạn muốn hiển thị văn bản gợi ý (trên đầu trang của EdiText) ngay cả khi người dùng nhập nó. Thông thường với thiết lập gợi ý để EditText sẽ không hoạt động theo cách này. Văn bản gợi ý sẽ biến mất sau khi chế độ xem được tập trung bằng cách chạm vào văn bản đó.

Helper Text

Bạn có thể đạt được điều này bằng cách sử dụng thư viện này::

1

Vì vậy, những gì bạn muốn đây là

https://github.com/rengwuxian/MaterialEditText

Bạn có thể thiết lập các "text helper" thuộc tính để hiển thị văn bản bên dưới dòng và "gợi ý" để hiển thị văn bản phía trên dòng. Bên dưới là bố cục mẫu cho ảnh đính kèm

<com.rengwuxian.materialedittext.MaterialEditText 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:hint="Password" 
     android:inputType="textPassword" 
     app:met_floatingLabel="normal" 
     app:met_helperText="Must contain at least 8 characters" 
     app:met_helperTextAlwaysShown="true"/> 
Các vấn đề liên quan