2

いくつかのアニメーションを使用して特定のアクションのビューを表示および非表示にしています。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」が上に移動し、「ftv_req_starttime」のような textView の背景が白くなります!!

助けてください。

4

2 に答える 2

0

編集済みの回答: 線形レイアウトを使用している場合、子が表示されていない場合、子はレイアウトされず、測定の一部にもなりません (ように見えます)。RelativeLayout を使用することをお勧めします。

あなたが試すことができます

android:background="@null"

あなたのボタンのために。ボタンにカスタムクラスを使用している場合は、追加します

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

この特定のビューのために。

于 2014-03-18T12:23:22.983 に答える
0

もっとコードが必要です。LayoutTransition を無効にしても問題が解決しないという事実は、アニメーションが問題ではないことを意味します。

子ビューを再インスタンス化する方法、またはビューにデータを入力する方法。setVisibility(View.GONE) でビューを削除してから、setVisibility(View.VISIBLE) でビューを元に戻していますか?

また

childAt(i) を削除してから、カスタム ビューを動的に追加していますか

評判が良くないのでコメントを追加できず申し訳ありませんが、さらにコードを投稿していただければ、質問に答えることができると思います。

于 2014-03-18T15:13:07.717 に答える