2017-11-04 19 views
1

親アクティビティを上に移動するときは、いくつかの追加が必要です。しかし、私はそれをどのように供給することができるのか分かりません。 AppCompatActivityのドキュメントの状態:親チェーンに沿った任意の活動 *余分なテントの引数を必要とonPrepareSupportNavigateUpTaskStack上書きするときに上に移動する

場合は、アクティビティサブクラス *メソッドをオーバーライドする必要があります{@link #onPrepareSupportNavigateUpTaskStack(android.support.v4.app.TaskStackBuilder)} *を使用してこれらの引数を指定します。

これまで私がこれまでにしてきたことです。

のAndroidManifest.xml

<activity 
     android:name=".user.offers.detail.OfferDetailActivity" 
     android:theme="@style/AppTheme.NoActionBar" 
     android:parentActivityName=".user.offers.master.OffersMasterActivity" 
     android:screenOrientation="portrait"> 
    </activity> 

onPrepareSupportNavigateUpを上書きする方法について多くの情報がありませんので、ここで(「子」の活動で)私の最高の推測です:

override fun onPrepareSupportNavigateUpTaskStack(builder: TaskStackBuilder) { 
    builder.editIntentAt(builder.intentCount - 1)?.apply { 
     putExtra(OffersMasterActivity.CAT_KEY_EXTRA, catKey) 
     putExtra(OffersMasterActivity.CAT_NAME_EXTRA, catName) 
     putExtra(OffersMasterActivity.CAT_PICPATH_EXTRA, picPath) 
    } 
} 

しかし、メソッドが呼び出されることはありません私の実装が有効かどうかを調べる。

ご協力いただければ幸いです!

答えて

1

onPrepareSupportNavigateUpを呼び出すには、supportShouldUpRecreateTaskを最初にオーバーライドしてtrueを返します。

+0

これは素晴らしく機能しましたが、これを使用すると残念な副作用があります。前のアクティビティをロードする前に白い画面が表示され、遷移が不自然に感じられます。これが起こらないようにする方法はありますか? – kevinivan05

関連する問題