Android - сброс фона после отображения / скрытия просмотров с анимацией

Я показываю и скрываю виды определенных действий, используя некоторую анимацию, я использовал LayoutTransition, и он, кажется, работает нормально, за исключением одной вещи, пока идет анимация, фон некоторых TextViews изменяется и сбрасывается на белый фон по умолчанию!!

Ниже приведен код, который я использую для применения анимации после скрытия / показа.

mRightTransitioner = new LayoutTransition();
mRightTransitioner.setDuration(1000);
vg_rightContainer.setLayoutTransition(mRightTransitioner);

Отредактировано: даже без анимации я пытался, та же проблема, фон сбрасывается при изменении положения представления

Отредактировано: здесь, как я объявил представления в XML

<LinearLayout
        android:id="@+id/ll_req_reasonwrapper"
        android:layout_width="match_parent"
        android:layout_height="40dp"
        android:layout_marginTop="10dp"
        android:baselineAligned="false"
        android:gravity="right"
        android:orientation="horizontal"
        android:visibility="gone" >

        <EditText
            android:id="@+id/et_req_reasons"
            android:layout_width="400dp"
            android:layout_height="match_parent"
            android:background="@drawable/comments_textbox"
            android:gravity="right|center_vertical"
            android:inputType="text"
            android:paddingRight="8dp" />

        <TextView
            android:layout_width="100dp"
            android:layout_height="match_parent"
            android:gravity="center_vertical"
            android:text="@string/str_req_preasons" />
    </LinearLayout>

    <LinearLayout
        android:id="@+id/ll_req_timewrapper"
        android:layout_width="match_parent"
        android:layout_height="40dp"
        android:layout_marginBottom="10dp"
        android:layout_marginTop="10dp"
        android:baselineAligned="false"
        android:gravity="right"
        android:orientation="horizontal"
        android:visibility="gone" >

        <LinearLayout
            android:id="@+id/ll_req_endtimewrapper"
            android:layout_width="wrap_content"
            android:layout_height="match_parent" >

            <TextView
                android:id="@+id/ftv_req_endtime"
                android:layout_width="100dp"
                android:layout_height="match_parent"
                android:background="@drawable/comments_textbox"
                android:freezesText="true"
                android:gravity="right|center_vertical"
                android:inputType="numberDecimal"
                android:paddingRight="8dp" />

            <TextView
                android:layout_width="100dp"
                android:layout_height="match_parent"
                android:gravity="center_vertical"
                android:text="@string/str_req_endtime" />
        </LinearLayout>

        <LinearLayout
            android:id="@+id/ll_req_starttimewrapper"
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:layout_marginLeft="50dp" >

            <TextView
                android:id="@+id/ftv_req_starttime"
                android:layout_width="100dp"
                android:layout_height="match_parent"
                android:background="@drawable/comments_textbox"
                android:freezesText="true"
                android:gravity="right|center_vertical"
                android:inputType="numberDecimal"
                android:paddingRight="8dp" />

            <TextView
                android:layout_width="100dp"
                android:layout_height="match_parent"
                android:gravity="center_vertical"
                android:text="@string/str_req_starttime" />
        </LinearLayout>
    </LinearLayout>

например: если я скрываю 'll_req_reasonwrapper', то LinearLayout 'll_req_timewrapper' перемещается вверх, тогда фоны textViews, такие как 'ftv_req_starttime', становятся белыми!!

Пожалуйста помоги.

2 ответа

Нужно больше кода. Тот факт, что отключение LayoutTransition не решает вашу проблему, означает, что анимация не является проблемой.

Как вы восстанавливаете взгляды детей или заполняете их? Вы удаляете представления с помощью setVisibility(View.GONE), а затем возвращаете их с помощью setVisibility(View.VISIBLE)

ИЛИ ЖЕ

Вы удаляете childAt(i), а затем динамически добавляете пользовательские представления

Извините, я не смог добавить комментарий, так как у меня нет репутации, но я думаю, что смогу ответить на ваш вопрос, если вы напишете больше кода.

Отредактированный ответ: если вы используете линейный макет, то если дочерний элемент не отображается, он не будет выложен и не будет частью измерений (как это выглядит). Я рекомендую использовать RelativeLayout.

Ты можешь попробовать

android:background="@null"

для ваших кнопок. если вы используете какой-то пользовательский класс для кнопки, то добавьте

.setBackgroundDrawable(new ColorDrawable(android.graphics.Color.TRANSPARENT));

для этого конкретного взгляда.

Другие вопросы по тегам