it-swarm.com.ru

AutoCompleteTextView подсказка с плавающей точкой

Я много пробовал, но не могу сделать работу подсказкой AutoCompleteTextView с помощью TextInputLayout из службы поддержки.

Это возможно или мне нужно использовать внешнюю библиотеку?

15
Marcelo Baccelli

Нет.

сама библиотека дизайна достаточно

включить как это 

<Android.support.design.widget.TextInputLayout
    Android:id="@+id/til_id"
    Android:layout_width="match_parent"
    Android:layout_height="wrap_content"
    Android:layout_marginTop="125dp"
    >

    <AutoCompleteTextView
        Android:id="@+id/auto_text"
        Android:layout_width="match_parent"
        Android:layout_height="wrap_content"
        Android:hint="Id"
        Android:singleLine="true"/>
</Android.support.design.widget.TextInputLayout>
27
N J

 enter image description here

dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.Android.support:appcompat-v7:23.0.1'
compile 'com.Android.support:design:23.0.1'

}

для получения дополнительной информации нажмите здесь http://androiddhina.blogspot.in/2015/10/Android-material-design-floating-labels-for-edittext.html

0
Dhina k

Может быть, немного поздно, но вот хитрость:

Создайте следующий класс,

public class AutoCompleteTextInputLayout extends TextInputLayout {

    private boolean mIsHintSet;
    private CharSequence mHint;

    public AutoCompleteTextInputLayout(Context context) {
        super(context);
    }

    public AutoCompleteTextInputLayout(Context context, AttributeSet attrs) {
        super(context, attrs);
    }

    @Override
    public void addView(View child, int index, ViewGroup.LayoutParams params) {
        if (child instanceof EditText) {
            mHint = ((EditText) child).getHint();
        }
        super.addView(child, index, params);
    }

    @Override
    protected void onDraw(Canvas canvas) {
        super.onDraw(canvas);

        if (!mIsHintSet && ViewCompat.isLaidOut(this)) {
            setHint(null);

            EditText editText = getEditText();
            if (editText == null) {
                return;
            }
            CharSequence currentEditTextHint = editText.getHint();
            if (!TextUtils.isEmpty(currentEditTextHint)) {
                mHint = currentEditTextHint;
                editText.setHint("");
            }
            setHint(mHint);
            mIsHintSet = true;
        }
    }
}

Теперь добавьте эти строки в ваш файл макета и увидите магию

<com.example.AutoCompleteTextInputLayout
    Android:id="@+id/text_input_autocomplete"
    Android:layout_width="match_parent"
    Android:layout_height="wrap_content">

    <AutoCompleteTextView
        Android:id="@+id/autocomplete_tv"
        Android:layout_width="match_parent"
        Android:layout_height="wrap_content"
        Android:singleLine="true"
        Android:textColorHint="@color/textColorDarkHint"/>
</com.example.AutoCompleteTextInputLayout>
0
koni