如何避免新的应用内购买底部 sheet 推高整个应用

How to avoid the new in-app purchase bottom sheet from pushing up entire app

在最近的 Android 更新中,Google 更改了他们的应用内购买 UI。

我们使用

// BillingClient mBillingClient;
mBillingClient.launchBillingFlow

启动应用内购买流程。

以前,当我们启动他们的应用内购买流程时,屏幕中央会显示一个对话框。

现在,对于最近的 Android 更新,Google 更改了应用内购买流程,显示底部 sheet。

但是,这会产生不良行为。当显示底部 sheet 时,

  1. 顶部状态栏将被隐藏
  2. 由于顶部状态栏是隐藏的,所以会多出一个space。结果,我的应用程序被推送了。这会造成不愉快的用户体验。

请看截图。

在显示应用内购买底部之前sheet


显示应用内购买底部后sheet。该应用程序是 "pushed up"。状态栏不见了


知道如何避免新的应用内购买底部 sheet 推高整个应用吗?

这是我针对上述问题的解决方案。

<style name="Theme.JStock.FitSystemWindows.Light" parent="@style/Theme.JStock.Base.Light">
    <item name="android:fitsSystemWindows">true</item>
</style>

关键是应用 android:fitsSystemWindows 为真。