如何仅在进行 http 调用后启用导航点击?

How to enable navigation click only after a http call has been made?

我的 Android 应用程序有问题。

我有一个底部导航菜单,用于在 MainActivity 的片段中导航。 问题是,在其中的 3 个片段上,我正在进行一个 http 调用来检索这些片段的数据。 如果我过早地单击导航项,并且在解析 http 之前加载了另一个片段,我的应用程序就会崩溃,因为它会尝试将数据加载到不再存在的视图项中。

我的问题是,在 http 请求加载数据之前如何禁用底部导航?

您的 activity 可以从禁用的菜单项开始,以便用户知道该应用不准备导航到那里。

    bottomBar.menu.findItem(R.id.frag1).isEnabled = false
    ..... // same for every item

并且在您的 http 调用中应该有一些方法,例如 onResponse() (Retrofit) 或类似的方法,您可以在其中启用它们。

    public void onResponse(Call<Result> call, Response<Result> response) { 
         if(response.isSuccessful()){
             bottomBar.menu.findItem(R.id.frag1).isEnabled = true;
             ...
        }
    }