9

アクティビティ内の他のイベントのコンテキストに基づいて 、ビュー(いくつかのボタンが入った線形ビュー - R.id.playerControl)をスライドインおよびスライドアウトさせようとしています。

この目的のためにselectMediaItem、ユーザーがアイテムを選択または選択解除したときにビューを表示または非表示にするメソッドを用意しました。

私はアンドロイドのアニメーションが初めてで、2つの理由でこれを機能させるのに問題があります:

  1. ビューはアニメーション時間外に画面に残るため、スライドアウトが完了するとジャンプして戻り、スライドインが要求されるとジャンプしてスライドインします。

  2. ビューが消えると、画面に恒久的な黒いスペースができます。ビューが表示されているときはスペースを埋め、表示されていないときはビューを表示したいと思いますGONE。この目的のために、レイアウトもアニメーションに合わせて変更して、他のものを押しのけているように見せたいと思います。

私のコード:

protected void selectMediaItem( ItemHandle item ) {

    if (item != null) {
        if (toPlay == null) {
            View playerControl = findViewById(R.id.playerControl);
            Animation slideInAdmination = AnimationUtils.loadAnimation(this, R.anim.slide_in);
            playerControl.startAnimation(slideInAdmination);
        }
    }
    else {
        if (toPlay != null) {
            View playerControl = findViewById(R.id.playerControl);
            Animation slideInAdmination = AnimationUtils.loadAnimation(this, R.anim.slide_out);
            playerControl.startAnimation(slideInAdmination);
        }
    }
    toPlay = item;
}

slide_in.xml

    <translate
        android:duration="1000"
        android:fromYDelta="100%p"
        android:toYDelta="0" />


</set>

ビューを所定の位置にスライドさせて、再びスライドさせる簡単な方法はありますか?

4

2 に答える 2