1

2つのFrameLayouts(f1とf2)で構成されるxml-layoutがあります。F1はすべての画面領域を埋め、f2はandroid:layout_marginBottom="-900dp"を使用して画面の下に非表示になります。レイアウト:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:id="@+id/llMainLayout" 
    android:orientation="vertical">
    <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:orientation="vertical">
        <FrameLayout
            android:layout_width="fill_parent"
            android:layout_height="fill_parent" 
            android:id="@+id/f1" android:background="@color/white">

            <fragment
                android:id="@+id/leftsidefragment"
                android:name="de.com.fragments.ChapterDescriptionPageFragment"
                android:layout_width="match_parent"
                android:layout_height="fill_parent"/>

        </FrameLayout>

        <FrameLayout
            android:layout_width="fill_parent"
            android:layout_height="wrap_content" 
            android:id="@+id/flRightWindowPart" 
            android:background="@android:color/transparent"
            android:layout_gravity="bottom">

            <fragment
                android:id="@+id/f2"
                android:name="de.com.fragments.ChapterSubchaptersListFragmentWithHeader"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"/>

        </FrameLayout>
    </FrameLayout>
</LinearLayout>

次に、翻訳アニメーションを実行します。f2が上昇しています。1つの問題を除いて、すべて正常に動作します。アニメーション中はf2が表示されません。アニメーションを構成するメソッドのコード:

public Animation constructSlideUpAnimation(boolean inverse){
    if (inverse)
        return new TranslateAnimation(
                  Animation.ABSOLUTE, 0.0f, Animation.ABSOLUTE, 0.0f,
                  Animation.ABSOLUTE, 0.0f, Animation.ABSOLUTE, 900
              );
    else
        return new TranslateAnimation(
                  Animation.ABSOLUTE, 0.0f, Animation.ABSOLUTE, 0.0f,
                  Animation.ABSOLUTE, 0.0f, Animation.ABSOLUTE, -900
              );
}

他のコードのチャンクが必要な場合は記述してください。助けてくれて本当に感謝しています。前もって感謝します。

4

2 に答える 2

1

この問題は、アニメーションが終了した後の2番目のフラグメント(f2)の高さを値に設定するコードを追加することで解決されました。

于 2012-05-25T08:54:11.133 に答える
0

よくわかりませんが、アニメーションオブジェクトの継続時間をミリ秒単位で設定する必要があります。

于 2012-05-23T15:30:39.883 に答える