1

リストから詳細ページへ、そして詳細ページからリストページへと戻った後、素敵なトランジション効果を作ろうとしています。何かのようなもの:

     +---------+
   +--------+ A | 全部同じ方向から
 +-----+ B | | |
 | | あ | +--> |
 | | | | | | | |
 | | | | | | | |
 | | +--> | | |
 +--------+ | | |
   +--------+ |
     +---------+


+--------+ +----------+
| | B |---+ +----| あ |
| | | | あ | | | ビ | | |
| | | | | | | | | | | |
| | | | | | | | | | | |
| | | | | | | | | | | |
| | +---> | | | | | | |
| | | | | | | | <----+ |
| | | | | | | | | | | |
| | |---+ +----| | |
+--------+ | | |
                       +---------+

 B が A の上に移動し、押し戻した後
 A が B の上に移動します。

最初の部分 (リスト>詳細) はうまく機能しますが、逆の順序のエフェクトをバック アクションにフックすると、うまく機能しますが、私が望むようには機能しません。間違ったページ(ページ B)は、バックプレス後にスライドを引き受け、A に落ち着き、その後消えます。

私が本当に望んでいたのは、バックプレスの後に A が B の上をスライドすることでした。これはより理にかなっています。

リストからのコード:

lstBooks.setOnItemClickListener(new ListView.OnItemClickListener()
{
    @Override
    public void onItemClick(AdapterView<?> adapter, View view, int position, long id)
    {
        Intent intent = new Intent(BooksActivity.this, DetailClass.class);
        startActivity(intent);
        overridePendingTransition(R.anim.left_to_right_slide, R.anim.right_to_left_slide);
    }
});

詳細ページの反対:

@Override
public void onBackPressed()
{
    super.onBackPressed();
    overridePendingTransition(R.anim.left_to_right_slide,  R.anim.right_to_left_slide);
}

左から右へのスライド:

<?xml version="1.0" encoding="utf-8"?>

<set xmlns:android="http://schemas.android.com/apk/res/android" android:shareInterpolator="false">
    <translate android:fromXDelta="-100%"
               android:toXDelta="0%"
               android:fromYDelta="0%"
               android:toYDelta="0%"
               android:duration="350"/>
</set>

右から左へのスライド:

<?xml version="1.0" encoding="utf-8"?>

<set xmlns:android="http://schemas.android.com/apk/res/android" android:shareInterpolator="false">
    <translate android:fromXDelta="0%"
               android:toXDelta="100%"
               android:fromYDelta="0%"
               android:toYDelta="0%"
               android:duration="350" />
</set>

基本的には、押し返すと自然にスライドが反対方向に動くようにしたいです。**

4

2 に答える 2