进度条的位置

时间:2018-11-11 03:45:09

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

我已经成功构建了一个选项卡式活动应用,其中四个选项卡均按预期工作。每个选项卡都加载一个网页。我的问题是,我没有在某些用户会知道页面正在加载的每个选项卡上放置进度条代码的位置。 进度条代码是否在代码或每个活动/片段的mainactiviry中? 我将不胜感激。谢谢

1 个答案:

答案 0 :(得分: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();
      }
    • 在上面的代码片段中,我们正在使用mProgressDialog。因此,请在每个片段或Activity中全局初始化此mProgressDialog。
    • 使用login API()代替您的API调用方法。
    • 在API调用中,无论您使用的是Volley还是Retrofit。使用此方法可以禁用有关API调用失败或成功的进度对话框。
      if (mProgressDialog != null) mProgressDialog.dismiss();
      
      如果您有任何疑问,请告诉我