gpt4 book ai didi

android - 如何正确处理嵌套 fragment 中的 MaskedWallet 响应

转载 作者:行者123 更新时间:2023-11-29 00:11:54 25 4
gpt4 key购买 nike

这是一个演示嵌套 fragment 和钱包问题的示例应用

https://github.com/zumper/WalletTest

这是应用嵌套方面的结构

MainActivity
|
+-> TopLevelFragment
|
+-> NestedFragment
|
+-> SupportWalletFragment

SupportWalletFragment 通过3333 请求代码配置

  public static final int WALLET_REQUEST_CODE = 3333;

...

WalletFragmentInitParams.Builder startParamsBuilder =
WalletFragmentInitParams.newBuilder()
.setMaskedWalletRequest(generateMaskedWalletRequest("10.99"))
.setMaskedWalletRequestCode(WALLET_REQUEST_CODE);

但是当从钱包 Activity 中选择支付方式时,结果通过MainActivity.onActivityResult() 请求代码值为 66036然后到 TopLevelFragment.onActivityResult() 请求代码值为 500

就是这样。 NestedFragment.onActivityResult() 从未使用预期的请求代码 3333

调用

这个问题似乎是一个已知问题:

http://blog.shamanland.com/2014/01/nested-fragments-for-result.html

https://code.google.com/p/android/issues/detail?id=40537

我可以通过拦截 onActivityResult() 并通过事件总线或其他方式中继参数来解决我们实际代码中的问题。

棘手的部分是我什至没有得到正确的 requestCode 传入...这让我的所有 hack 都非常脆弱。

我们有一个 fragment 繁多的应用程序,我无法减少比我已经拥有的更多的层次结构。

还有其他解决方案吗?

最佳答案

这个我已经和google谈过了..答案是没有答案。如果您在嵌套 fragment 情况下使用 SupportWalletFragment, Activity 结果传播将不起作用(您需要自己处理)并且您的 requestCode 将不会为 MaskedWalletRequest(它将兑现为FullWalletRequest)。

如果您使用 native fragment 而不是支持库 fragment ,requestCode 将被接受,但您仍然需要处理自己的传播。

我们需要继续使用支持库。所以在我们的例子中,我手动处理 Activity 结果的传播,并且我已将我的 requestCode 设置为 500 以匹配我似乎从蒙面钱包响应结果中获得的代码。我认为这是在这种情况下可以做的最好的事情。如果我更清楚的话,我会在这里更新。

关于android - 如何正确处理嵌套 fragment 中的 MaskedWallet 响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29641624/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com