Как переместить левую отрисовку с (подсказкой) меткой в ​​TextInputLayout?

Я использую TextInputLayout и в котором я устанавливаю drawableLeft, и когда я нажимаю на edittext, метка уже всплывает, но я хочу, чтобы плавающий левый также рисовался с меткой. Как я могу достичь, см. Прикрепленное изображение ...

Прямо сейчас, когда я нажимаю на «Заголовок», всплывает только leble, но я хочу, чтобы оба были плавающими «leftdrawable» и «label» в фокусе. И прежде чем щелкнуть по нему будет выглядеть обычная строка типа «Дата обслуживания».

Мой код ниже ..

<FrameLayout
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_below="@+id/input_layout_cardnum"
    >
    <ImageView
        android:id="@+id/imgLeft"
        android:layout_width="30dp"
        android:layout_height="30dp"
        android:layout_gravity="bottom"
        android:src="@mipmap/ic_launcher"
        android:layout_marginBottom="10dp"
        />
    <android.support.design.widget.TextInputLayout
        android:id="@+id/input_layout_cardnums"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        >
        <EditText
            android:id="@+id/cardnumEditTexst"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:maxLength="255"
            android:singleLine="true"
            android:hint="hello"
            android:drawableLeft="@null"
            android:paddingLeft="35dp"
            />
    </android.support.design.widget.TextInputLayout>
</FrameLayout>

И в моем коде я устанавливаю анимацию на OnFocus, так что она идет вверх с меткой

  final Animation animation = AnimationUtils.loadAnimation(this,R.anim.anims);
  final ImageView imgLeft = (ImageView) findViewById(R.id.imgLeft);

  final EditText et = (EditText) findViewById(R.id.cardnumEditTexst);
    et.setOnFocusChangeListener(new View.OnFocusChangeListener()
    {
        @Override
        public void onFocusChange(View v, boolean hasFocus)
        {
            if (hasFocus)
            {
                if (et.getText().length() == 0)
                {
                    imgLeft.startAnimation(animation);
                }
            } else
            {
                if (et.getText().length() == 0)
                    imgLeft.clearAnimation();
            }
        }
    });

А моя анимация выкинет изображение сверху

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
     android:fillAfter="true"
     android:duration="200"
     android:interpolator="@android:interpolator/linear"
    >
    <scale
        android:fromXScale="0%"
        android:fromYScale="0%"
        android:toXScale="60%"
        android:toYScale="60%"
        android:pivotX="50%"
        android:pivotY="50%"
        />
    <translate
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:startOffset="100"
        android:fromYDelta="0%"
        android:toYDelta="-80%"/>

</set>

И установив это, я получил, теперь с плавающей все в порядке, но посмотримpaddingLeft = "35dp"Я хочу начать его с 0-й позиции, см. на первом изображении, где отображается «Заголовок», я имею в виду, что там не должно быть отступов, но если я будуУдалить padding оставляет лёгкие потери функциональности.

 S.D.08 июн. 2016 г., 14:33
Просто удалите / установите левую отрисовку при запуске анимации.TextInputLayout имеет TextListener, отслеживающий EditText, и отсюда он запускает анимацию.
 Bajrang Hudda08 июн. 2016 г., 11:19
@ S.D. Я пытался настроить, но теперь у меня есть только небольшая проблема, я хочу удалить leftPadding, чтобы пользователь мог вводить очень старт, см. изображение
 S.D.08 июн. 2016 г., 08:22
Вам нужно написать свою собственную реализацию для этого. TextInputLayout используетCollapsingTextHelper  класс для рисования анимированного текста на холсте макета. Там нет места для настройки, так как этот класс является внутренним.
 Bajrang Hudda08 июн. 2016 г., 14:40
обратите внимание на просмотр изображений, если я собираюсь удалить / установить отступ при запуске анимации, куда пойдет мой просмотр изображений?

Ответы на вопрос(1)

попробуй это...

final Animation animation = AnimationUtils.loadAnimation(this, R.anim.anims);
final ImageView imgLeft = (ImageView) findViewById(R.id.imgLeft);

findViewById(R.id.cardnumEditTexst).setOnFocusChangeListener(new View.OnFocusChangeListener() {
    @Override
    public void onFocusChange(View v, boolean hasFocus) {
        if (hasFocus) {
            imgLeft.startAnimation(animation);
        } else {
            imgLeft.clearAnimation();
        }
    }
});

а также

<set xmlns:android="http://schemas.android.com/apk/res/android"
    android:duration="200"
    android:fillAfter="true"
    android:interpolator="@android:interpolator/linear">

    <scale
        android:fromXScale="0%"
        android:fromYScale="0%"
        android:pivotX="50%"
        android:pivotY="50%"
        android:toXScale="60%"
        android:toYScale="60%" />

    <translate xmlns:android="http://schemas.android.com/apk/res/android"
        android:fromYDelta="0%"
        android:startOffset="100"
        android:toYDelta="-80%" />

</set>

и установите свой макет, как это ...

<FrameLayout
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_below="@+id/input_layout_cardnum">

    <ImageView
        android:id="@+id/imgLeft"
        android:layout_width="30dp"
        android:layout_height="30dp"
        android:layout_gravity="bottom"
        android:src="@mipmap/ic_launcher"
        android:layout_marginBottom="10dp" />

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

        <EditText
            android:id="@+id/cardnumEditTexst"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:maxLength="255"
            android:singleLine="true"
            android:hint="hello"
            android:drawableLeft="@null"
            android:paddingLeft="35dp" />
    </android.support.design.widget.TextInputLayout>
</FrameLayout>
 Bajrang Hudda08 июн. 2016 г., 11:15
Пожалуйста, смотрите мой отредактированный вопрос, я не поправляюсь, смотрите изображение.

Ваш ответ на вопрос