【问题标题】:onPrepareSupportNavigateUpTaskStack when overriding Up navigation not calledonPrepareSupportNavigateUpTaskStack 覆盖向上导航时未调用
【发布时间】:2017-11-04 06:16:13
【问题描述】:

导航我的父活动时需要一些额外的东西。但我不确定如何提供它。 AppCompatActivity 的文档状态:

如果有任何活动 * 沿着父链需要额外的 Intent 参数,Activity 子类 * 应该重写方法 {@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)
    }
}

但永远不会调用该方法来确定我的实现是否有效。

任何帮助将不胜感激!

【问题讨论】:

    标签: android appcompatactivity up-navigation


    【解决方案1】:

    对于要调用的onPrepareSupportNavigateUp,应首先覆盖supportShouldUpRecreateTask,返回true

    【讨论】:

    • 这很好用,但是使用它时有一个不幸的副作用。在加载上一个活动之前会出现一个白屏,这使得过渡感觉不自然。有什么办法可以防止这种情况发生?
    • @kevinivan05,您有没有找到解决或至少缓解白屏过渡问题的方法?覆盖这些方法后,我遇到了同样的不自然过渡问题。当我搜索此问题的答案或更具体地搜索此答案中提到的方法时,从缺乏匹配的结果来看,似乎仍然令人惊讶地缺乏有关这些方法的现成详细信息。
    猜你喜欢
    • 1970-01-01
    • 2022-01-21
    • 1970-01-01
    • 1970-01-01
    • 2014-01-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多