android - fragment设置关于translationY属性的objectAnimator属性动画
PHP中文网
PHP中文网 2017-04-17 17:24:39
0
2
797

在给fragment设置关于translationY属性的objectAnimator属性动画时,如果valueFrom的值大于等于fragment的高度时(下面代码中的第一个动画),fragment的这个动画不能在activity上显示出来,当valueFrom的值小于fragment的高度时,fragment的这个动画就能在activity上正常显示。请问为何会出现这种情况。
fragment设置动画的代码:

@Override
    public Animator onCreateAnimator(int transit, boolean enter, int nextAnim) {
        Animator anim;
        if (enter) {
            anim = ObjectAnimator.ofFloat(mRootView, "translationY", mRootView.getHeight(), 0).setDuration(2000);
        } else {
            anim = ObjectAnimator.ofFloat(mRootView, "translationY", 0, mRootView.getHeight()-1).setDuration(2000);
        }

        return anim;
    }

fragment的mRootView的layout:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              android:orientation="horizontal"
              android:background="@drawable/bg_white"
              android:layout_width="match_parent"
              android:layout_height="wrap_content">
    <ImageView
        android:layout_marginLeft="30dp"
        android:layout_marginTop="15dp"
        android:layout_marginBottom="15dp"
        android:layout_marginRight="40dp"
        android:layout_width="20dp"
        android:layout_height="20dp"
        android:src="@drawable/icon_navigation"/>
    <TextView
        android:layout_width="match_parent"
        android:layout_height="50dp"
        android:text="@string/app_name"
        android:id="@+id/location_txv"
        android:gravity="center_vertical"
        android:textSize="16sp"/>
</LinearLayout>
PHP中文网
PHP中文网

认证高级PHP讲师

全員に返信(2)
大家讲道理

translationY を y に置き換えてください。

いいねを押す +0
Ty80

これまでのところ、この問題はアクティビティのレイアウトに関連しているようです。
アクティビティのレイアウト:

リーリー

アクティビティのレイアウトで、ボタンとimageViewの高さを設定しています。imageViewと画面下部の間のスペース、つまり ayout_marginBottom="85dp" は、空白であると言えます(このような意味です)。表現が難しいです)。私の現在の解決策は、このスペースの下部に高さ 1 dp のビューを追加することです:

リーリー

これを追加すると、valueFromの値が高さ以上でもアニメーションが正常に表示されるようになりましたが、なぜこのビューを追加しないとこうなるのかわからない気がします。 、フラグメントを格納するframeLayoutは上記のようになり、その「空」のスペースでは表示できません。この処理がソースコードでどのように描かれているのかわからないので、回答が得られることを願っています。

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート