【问题标题】:Position of progressbar进度条的位置
【发布时间】:2018-11-11 03:45:09
【问题描述】:

我已经成功构建了一个带有四个选项卡的选项卡式活动应用程序,所有选项卡都按预期工作。每个选项卡加载一个网页。我的问题是我没有将每个选项卡的进度条代码放置在某些用户会知道页面正在加载的位置。 进度条代码将在代码或每个活动/片段的主要活动中吗? 我将感谢所有帮助和示例。感谢期待

【问题讨论】:

  • 请展示您到目前为止所做的尝试,以便更好地理解您的问题。

标签: android android-activity webview progress-bar tabbed


【解决方案1】:

您可以按照以下代码和重要步骤轻松完成此操作。

  1. 首先,创建一个 NetworkUtils 类并在该类中添加以下代码

     public static NetworkUtils sNetworkUtils;
    
     
        public static NetworkUtils getInstance() {
                if (sNetworkUtils == null) {
                    sNetworkUtils = new NetworkUtils();
                }
                return sNetworkUtils;
            }
    
    

     
         public Boolean isNetworkAvailable(Context context) {
            ConnectivityManager check = (ConnectivityManager) context.
                    getSystemService(Context.CONNECTIVITY_SERVICE);
            NetworkInfo[] info = check.getAllNetworkInfo();
            for (int i = 0; i < info.length; i++) {
                if (info[i].getState() == NetworkInfo.State.CONNECTED) {
                    return true;
                }
            }
            return false;
        }
    
     
        public static ProgressDialog getProgressDialog(Context context) {
            return ProgressDialog.show(context, "", "Loading please wait..", true);
        }
    在这里,我们正在做的是!我们正在创建一个全局类并声明静态方法。因此,它可以在整个项目中的任何地方使用,但在同一个包中。
    • 在上面的代码中,我们创建了一个布尔方法isNetworkAvailable,该方法用于在进行API调用之前检查您的网络可用性。这种方法可以安全可靠地进行网络操作。

    • 使用以下代码调用这些静态方法以显示进度对话框以及网络检查。

      if (NetworkUtils.getInstance().isNetworkAvailable(getApplicationContext())) { 
         mProgressDialog = NetworkUtils.getProgressDialog(LoginActivity.this);
         loginAPI();
      } else { Toast.makeText(getApplicationContext(),getString(R.string.no_network_message),
       Toast.LENGTH_SHORT).show();
      if (mProgressDialog != null) mProgressDialog.dismiss();
      }
    • 在上面的代码sn-p中,我们使用的是mProgressDialog。因此,在您的每个片段或 Activity 中全局初始化此 mProgressDialog。
    • 使用您的 API 调用方法代替 loginAPI()。
    • 在 API 调用内部,无论您使用的是 Volley 还是 Retrofit。使用此方法禁用 API 调用失败或成功的进度对话框。
      if (mProgressDialog != null) mProgressDialog.dismiss();
      
      如果您有任何疑问,请告诉我

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-01-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-17
    • 1970-01-01
    相关资源
    最近更新 更多