如何在新创建的活动之上保留DialogFragment?

时间:2016-09-30 12:26:51

标签: android android-dialogfragment

我有一个活动A,会打开DialogFragment。在此对话框中,按钮将打开活动B. 我希望此活动B在DialogFragment(仍然打开)下方打开,我不希望重新创建对话框。

我怎样才能做到这一点?有没有办法更改DialogFragment的父Activity

干杯。

1 个答案:

答案 0 :(得分:1)

您可以使用转换执行此操作。

public void Trans(View v){
    Intent intent = new Intent(this,SecondActivity.class);
    String transitionName = getString(R.string.transition_album_cover);
    ActivityOptionsCompat options =
            ActivityOptionsCompat.makeSceneTransitionAnimation(HomeActivity.this,
                    albumCoverImageView,   // The view which starts the transition
                    transitionName    // The transitionName of the view we’re transitioning to
            );
    ActivityCompat.startActivity(HomeActivity.this, intent, options.toBundle());
}

在HomeActivity的布局中:

    <ImageView
    android:layout_height="200dp"
    android:layout_width="200dp"
    android:src="@drawable/pic"
    android:id="@+id/transPic"
    android:onClick="Trans"
    android:transitionName="@string/transition_album_cover" />

在SecondActivity的布局中

    <ImageView
    android:layout_height="300dp"
    android:layout_width="match_parent"
    android:scaleType="centerCrop"
    android:id="@+id/transPic"
    android:src="@drawable/pic"
    android:transitionName="@string/transition_album_cover" />

在这里,我使用ImageView作为HomeActivity和Second Activity中的常用元素。我相信你也可以尝试这种对话框。我自己也没有为对话框做过。

编辑:更改对话的父级不是可以通过这种方式实现的。当我发布答案时,我没有读过那篇文章。但是,如果您没有义务使用Dialog本身,这仍然值得一试。