如何在使用数据加载列表视图之前在具有列表视图的活动中显示进度条(圆圈)

Posted

技术标签:

【中文标题】如何在使用数据加载列表视图之前在具有列表视图的活动中显示进度条(圆圈)【英文标题】:how to show progress bar(circle) in an activity having a listview before loading the listview with data 【发布时间】:2012-09-15 14:00:59 【问题描述】:

我在第二个activity.OnItemClick 中有一个ListView,我调用了一个网络服务并尝试获取数据。之后,我将转到第三个活动,其中还有一个 ListView 描述了以前的活动 ListView 项目。

我想在填充此 ListView 之前显示一个进度对话框。

我不明白如何在ListView 上进行操作?有人知道怎么做吗?

我的代码-

ThirdActivity.java

   package com.google.iprotect;

import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;

import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import org.xmlpull.v1.XmlPullParserException;

import com.google.iprotect.layout.TitleBarLayout;

import android.app.Activity;
import android.app.ListActivity;
import android.app.ProgressDialog;
import android.content.Intent;
import android.content.res.ColorStateList;
import android.content.res.XmlResourceParser;
import android.os.AsyncTask;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.AdapterView;
import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.ProgressBar;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.TextView;

public class ThirdActivity extends ListActivity implements OnItemClickListener

    JSONArray jArray1,jArray2;
    String one,two,three,tablename;
    String color,r;
    JSONObject responseJSON;
    TitleBarLayout titlebarLayout;
    final ArrayList<Tables> arraylist = new ArrayList<Tables>();
    TextView tableName;
    ColorStateList colorStateList1;
    String email1,password1;
    protected void onCreate(Bundle savedInstanceState) 
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.thirdactivity);

        ListView lv=getListView();
        lv.setOnItemClickListener(this);


        tablename=getIntent().getExtras().getString("Table Name");
        email1 = getIntent().getExtras().getString("email");
        password1 =getIntent().getExtras().getString("password");

        titlebarLayout = new TitleBarLayout(ThirdActivity.this);
        titlebarLayout.setLeftButtonText("go Back");
        titlebarLayout.setRightButtonText("Logout");
        titlebarLayout.setTitle(tablename);
        titlebarLayout.setLeftButtonSize(70,40);
        titlebarLayout.setRightButtonSize(70,40);
        //titlebarLayout.setLeftButtonLeftDrawable(R.drawable.refresh);

        //titlebarLayout.setRightButtonLeftDrawable(R.drawable.buttonrefresh);
        //titlebarLayout.setLeftButtonBackgroundColor(Color.rgb(255,255,255));
        //titlebarLayout.setRightButtonBackgroundColor(Color.rgb(34,49,64));
        //titlebarLayout.setLeftButtonTextColor(Color.rgb(255,255,255));
        //titlebarLayout.setRightButtonTextColor(Color.rgb(255,255,0));     

        XmlResourceParser parser1 =getResources().getXml(R.color.colorstatelist);


        try 
            colorStateList1 = ColorStateList.createFromXml(getResources(), parser1);
            titlebarLayout.setRightButtonTextColor(colorStateList1);
         catch (XmlPullParserException e)     
            e.printStackTrace();
         catch (IOException e) 

            e.printStackTrace();
        

        OnClickListener listener = new OnClickListener() 

            public void onClick(View v) 
                // TODO Auto-generated method stub
                if (v.getId() == R.id.left_button) 
                    Intent intent = new Intent(ThirdActivity.this,SecondActivity.class);
                    intent.putExtra("email", email1);
                    intent.putExtra("password", password1);
                    startActivity(intent);
                    finish();

                 else if (v.getId() == R.id.right_button) 
                    Intent intent = new Intent(ThirdActivity.this,
                            MainActivity.class);
                    //intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
                    intent.setFlags( Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK);
                    ThirdActivity.this.startActivity(intent);

                
            
        ;
        titlebarLayout.setLeftButtonOnClickListener(listener);
        titlebarLayout.setRightButtonOnClickListener(listener);


        updateTableList();




    

    private void updateTableList() 
        // TODO Auto-generated method stub
        //final ProgressDialog pd1=ProgressDialog.show(this, "Calling Webservice", "Waiting...", true, false);

        final ProgressBar pbHeaderProgress = (ProgressBar) findViewById(R.id.pbHeaderProgress);

        new AsyncTask<Void, Void, Void>() 


            protected void onPreExecute() 
                // TODO Auto-generated method stub
                super.onPreExecute();
                pbHeaderProgress.setVisibility(View.VISIBLE);
            



            protected Void doInBackground(Void... params) 
                r = invokeWebService1(tablename);
                //pd1.dismiss();

                try 
                    responseJSON = new JSONObject(r);
                    //json reading
                    jArray1 = responseJSON.getJSONArray("FirstThree");//get JSONArray jArray1 from JSONObject with name FirstThree
                    jArray2 = responseJSON.getJSONArray("Color");//get JSONArray jArray2 from JSONOobject with name Color
                    JSONObject json_data1 = null;
                    JSONObject json_data2 = null;

                    for (int i = 0; i < jArray1.length(); i++) 
                        json_data1 = jArray1.getJSONObject(i);//get JSONObject json_data1 from JSONArray at index i;
                        one = json_data1.getString("One");//get value from JSONObject json_data1 with key "One"
                        two = json_data1.getString("Two");
                        three = json_data1.getString("Three");
                        json_data2 = jArray2.getJSONObject(i);
                        color = json_data2.getString("color");//get value from JSONObject json_data2 with key "color"

                        Tables tables = new Tables();
                        //set value to Tables Class
                        tables.column1 = one;
                        tables.column2 = two;
                        tables.column3 = three;
                        tables.tableName=tablename;
                        tables.color=color;
                        //add Tables object into ArrayList<Tables>
                        arraylist.add(tables);

                        Log.i("ONE", json_data1.getString("One"));
                        Log.i("TWO", json_data1.getString("Two"));
                        Log.i("THREE", json_data1.getString("Three"));
                        Log.i("color",""+ json_data2.getString("color"));
                    

                 catch (JSONException e) 
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                
                return null;
            

            protected void onPostExecute(Void result) 
                pbHeaderProgress.setVisibility(View.GONE);

                //Custom Adapter for ListView
                TableDetailAdapter adaptor = new TableDetailAdapter(ThirdActivity.this,
                        R.layout.table_data_list_item, arraylist);
                setListAdapter(adaptor);
            
        .execute();

    

    protected String invokeWebService1(String tablename2) 
        // TODO Auto-generated method stub
        String response = "";
        try 
            WebService webService = new WebService(
            "http://sphinx-solution.com/iProtect/api.php?");

            // Pass the parameters if needed
            Map<String, String> params = new HashMap<String, String>();
            params.put("action", "getTableRecords");
            params.put("tablename", tablename2);
            params.put("email", email1);
            params.put("password", password1);

            // Get JSON response from server the "" are where the method name
            // would normally go if needed example
            response = webService.WebGet("auth", params);

         catch (Exception e) 
            Log.d("Error: ", e.getMessage());
        
        return response;
    


    public void onItemClick(AdapterView<?> arg0, View arg1, int position, long arg3) 
        // TODO Auto-generated method stub

        Log.v("", "Click ListItem Number "+position);
        Intent intent = new Intent(ThirdActivity.this,FourthActivity.class);
        intent.putExtra("Json", responseJSON.toString());//sending json Object as a string to next activity
        intent.putExtra("Table Name", tablename);
        intent.putExtra("email", email1);
        intent.putExtra("password", password1);
        intent.putExtra("Item No", position);
        startActivity(intent);

    


第三个活动.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/linlaHeaderProgress"
    android:layout_
    android:layout_
    android:orientation="vertical"
    tools:context=".ThirdActivity" >

    <include
        android:id="@+id/titlebar"
        layout="@layout/titlebar_layout" />

    <ProgressBar
        android:id="@+id/pbHeaderProgress"
        android:layout_
        android:layout_
        android:layout_gravity="center"
        android:layout_weight="2" >
    </ProgressBar>

    <ListView
        android:id="@android:id/list"
        android:layout_
        android:layout_ 
        android:layout_weight="5.04">
    </ListView>

    <LinearLayout
        android:layout_
        android:layout_
        android:layout_alignParentBottom="true"
        android:background="@color/footer_bg_color"
        android:gravity="bottom"
        android:orientation="horizontal" >

        <include
            android:id="@+id/footer"
            android:layout_
            android:layout_gravity="bottom|center_horizontal"
            layout="@layout/footer_layout" />
    </LinearLayout>

</LinearLayout>

【问题讨论】:

您是否在互联网上搜索过此查询? ***.com/questions/7061281/… Pankaj- 我知道如何显示进度对话框,但我只想显示进度条圆圈而不是进度对话框。 查看freakyjolly.com/… 【参考方案1】:

在加载activity 时,有几种方法可以显示进度条(圆圈)。在您的情况下,其中包含ListView

在操作栏中

如果您使用的是ActionBar,您可以像这样调用ProgressBar(这可以进入您的onCreate()

requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);  
setProgressBarIndeterminateVisibility(true);

在你完成显示列表后,将其隐藏。

setProgressBarIndeterminateVisibility(false);

在布局中(XML)

<LinearLayout
    android:layout_
    android:layout_
    android:layout_weight="1"
    android:orientation="vertical" >

    <LinearLayout
        android:id="@+id/linlaHeaderProgress"
        android:layout_
        android:layout_
        android:gravity="center"
        android:orientation="vertical"
        android:visibility="gone" >

        <ProgressBar
            android:id="@+id/pbHeaderProgress"
            style="@style/Spinner"
            android:layout_
            android:layout_ >
        </ProgressBar>
    </LinearLayout>

    <ListView
        android:id="@+id/list"
        android:layout_
        android:layout_
        android:layout_weight="1"
        android:cacheColorHint="@android:color/transparent"
        android:divider="#00000000"
        android:dividerHeight="0dp"
        android:fadingEdge="none"
        android:persistentDrawingCache="scrolling"
        android:smoothScrollbar="false" >
    </ListView>
</LinearLayout>

在你的活动中(Java) 我使用 AsyncTask 为我的列表获取数据。所以,在 AsyncTask 的 onPreExecute() 中,我使用了这样的东西:

// CAST THE LINEARLAYOUT HOLDING THE MAIN PROGRESS (SPINNER)
LinearLayout linlaHeaderProgress = (LinearLayout) findViewById(R.id.linlaHeaderProgress);

@Override
protected void onPreExecute()     
    // SHOW THE SPINNER WHILE LOADING FEEDS
    linlaHeaderProgress.setVisibility(View.VISIBLE);

并在onPostExecute()中,将适配器设置为ListView后:

@Override
protected void onPostExecute(Void result)      
    // SET THE ADAPTER TO THE LISTVIEW
    lv.setAdapter(adapter);

    // CHANGE THE LOADINGMORE STATUS TO PERMIT FETCHING MORE DATA
    loadingMore = false;

    // HIDE THE SPINNER AFTER LOADING FEEDS
    linlaHeaderProgress.setVisibility(View.GONE);

编辑:这就是它在我的应用程序中加载几个ListViews 之一时的样子

【讨论】:

我的应用程序中没有操作栏。我想在屏幕中心显示 proressbar 圆圈。 @Ani:答案中已经存在。使用在布局中使用的代码示例。它还包含您的 XML 代码。 @ShajeelAfzal:是的。这是一种风格。您会从任何 ICS API 中找到它的 SDK。搜索此 XML:progress_medium_holo.xml,并将相关图像复制到各自的可绘制文件夹中。 @eddy 只需在 ProgressBar 节点中使用 style="?android:attr/progressBarStyleLarge" 你能告诉我们@style/Spinner的定义是什么吗?【参考方案2】:

您可以更轻松地做到这一点。 来源:http://www.tutorialspoint.com/android/android_loading_spinner.htm 它帮助了我。

布局:

<ProgressBar
   android:id="@+id/progressBar1"
   style="?android:attr/progressBarStyleLarge"
   android:layout_
   android:layout_
   android:layout_centerHorizontal="true" />

在xml中定义后,必须在java文件中获取它的引用 通过 ProgressBar 类。其语法如下:

private ProgressBar spinner;
spinner = (ProgressBar)findViewById(R.id.progressBar1);

之后你可以让它消失,并在需要时把它带回来 通过 setVisibility 方法。其语法如下:

spinner.setVisibility(View.GONE);
spinner.setVisibility(View.VISIBLE);

【讨论】:

虽然这确实不是问题的最佳答案,但它帮助我解决了我的问题。谢谢。【参考方案3】:

我用这个来加载列表视图可能会有所帮助。

activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_
android:layout_
android:paddingLeft="5dp"
android:paddingRight="5dp" >

<LinearLayout
    android:id="@+id/progressbar_view"
    android:layout_
    android:layout_
    android:gravity="center_horizontal"
    android:orientation="vertical" >

    <LinearLayout
        android:layout_
        android:layout_
        android:gravity="center_horizontal"
        android:orientation="horizontal" >

        <ProgressBar
            style="?android:attr/progressBarStyle"
            android:layout_
            android:layout_
            android:layout_gravity="center_vertical|center_horizontal" />

        <TextView
            android:layout_
            android:layout_
            android:layout_gravity="center_vertical|center_horizontal"
            android:text="Loading data..." />
    </LinearLayout>

    <View
        android:layout_
        android:layout_
        android:background="#C0C0C0" />
</LinearLayout>

<ListView
    android:id="@+id/listView"
    android:layout_
    android:layout_
    android:layout_alignParentTop="true"
    android:layout_marginTop="1dip"
    android:visibility="gone" />

</RelativeLayout>

我的 MainActivity 类是,

public class MainActivity extends Activity 
ListView listView;
LinearLayout layout;
List<String> stringValues;
ArrayAdapter<String> adapter;

@Override
protected void onCreate(Bundle savedInstanceState) 
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    listView = (ListView) findViewById(R.id.listView);
    layout = (LinearLayout) findViewById(R.id.progressbar_view);

    stringValues = new ArrayList<String>();

    adapter = new ArrayAdapter<String>(this,
            android.R.layout.simple_list_item_1, stringValues);

    listView.setAdapter(adapter);
    new Task().execute();


class Task extends AsyncTask<String, Integer, Boolean> 
    @Override
    protected void onPreExecute() 
        layout.setVisibility(View.VISIBLE);
        listView.setVisibility(View.GONE);
        super.onPreExecute();
    

    @Override
    protected void onPostExecute(Boolean result) 
        layout.setVisibility(View.GONE);
        listView.setVisibility(View.VISIBLE);
        adapter.notifyDataSetChanged();
        super.onPostExecute(result);
    

    @Override
    protected Boolean doInBackground(String... params) 
        stringValues.add("String 1");
        stringValues.add("String 2");
        stringValues.add("String 3");
        stringValues.add("String 4");
        stringValues.add("String 5");

        try 
            Thread.sleep(3000);
         catch (Exception e) 
            e.printStackTrace();
        
        return null;
    


此活动显示进度 3 秒,然后它将显示列表视图,而不是将数据静态添加到 stringValues 列表,您可以在 doInBackground() 中从服务器获取数据并显示它。

【讨论】:

为了完整起见:Android 文档目前声明不鼓励在进度条下方使用文本。 developer.android.com/design/building-blocks/…【参考方案4】:

请使用tutorialspoint.com 的示例。整个实现只需要几行代码,而无需更改您的 xml 文件。希望这会有所帮助。

第 1 步:导入库

import android.app.ProgressDialog;

第 2 步:声明 ProgressDialog 全局变量

ProgressDialog loading = null;

第 3 步:启动新的 ProgressDialog 并使用以下属性(请注意,此示例仅涵盖基本的圆形加载栏,没有实时进度状态)。

loading = new ProgressDialog(v.getContext());
loading.setCancelable(true);
loading.setMessage(Constant.Message.AuthenticatingUser);
loading.setProgressStyle(ProgressDialog.STYLE_SPINNER);

第 4 步:如果您使用的是 AsyncTasks,您可以在 onPreExecute 方法中开始显示对话框。否则,只需将代码放在按钮 onClick 事件的开头即可。

loading.show();

第 5 步:如果您使用的是 AsyncTasks,您可以通过将代码放在 onPostExecute 方法中来关闭进度对话框。否则,只需在关闭按钮 onClick 事件之前放置代码即可。

loading.dismiss();

使用我的 Nexus 5 android v4.0.3 对其进行了测试。祝你好运!

【讨论】:

ProgressDialog 自 API 级别 O developer.android.com/reference/android/app/ProgressDialog.html987654322@ 起已被弃用【参考方案5】:

你在扩展 ListActivity 吗?

如果是这样,请在您的 xml 中放置一个带有以下行的循环进度对话框

<ProgressBar
android:id="@android:id/empty"
...other stuff...
/>

现在,进度指示器将显示,直到您获得所有列表视图信息,并设置适配器。此时会回到listview,进度条会消失。

【讨论】:

我想在屏幕中心显示进度条圆圈。如果我添加进度条,我可以在 XML 中放置列表视图。 正常布局。我在我的一个应用程序上做了这件事。如果我记得,您可以将列表视图放在高度和宽度为fill_parent 的全屏相对布局中。然后作为该 relative_layout 的第二个孩子,让进度指示器水平和垂直居中。 你能有那个xml吗? 但是如果加载的结果是空的呢?【参考方案6】:
ProgressDialog dialog = ProgressDialog.show(Example.this, "", "Loading...", true);

【讨论】:

这是实现目标的一种非常简单的方法。像 K.I.S.S 保持简单愚蠢的方式:D 这在 API 26 中已弃用。【参考方案7】:

在drawable中创建一个任意名称的xml文件(比如progressBar.xml) 并在 color.xml 中添加&lt;color name="silverGrey"&gt;#C0C0C0&lt;/color&gt;

<?xml version="1.0" encoding="utf-8"?>
<rotate xmlns:android="http://schemas.android.com/apk/res/android"
    android:fromDegrees="0"
    android:pivotX="50%"
    android:pivotY="50%"
    android:toDegrees="720" >

    <shape
        android:innerRadiusRatio="3"
        android:shape="ring"
        android:thicknessRatio="6"
        android:useLevel="false" >
        <size
            android:
            android: />

        <gradient
            android:angle="0"
            android:endColor="@color/silverGrey"
            android:startColor="@android:color/transparent"
            android:type="sweep"
            android:useLevel="false" />

    </shape>
</rotate>

现在在你有你的 listView 的 xml 文件中添加这个代码:

 <ListView
            android:id="@+id/list_form_statusMain"
            android:layout_
            android:layout_>
        </ListView>

        <ProgressBar
            android:id="@+id/progressBar"
            style="@style/CustomAlertDialogStyle"
            android:layout_
            android:layout_
            android:layout_centerInParent="true"
            android:layout_gravity="center_horizontal"
            android:indeterminate="true"
            android:indeterminateDrawable="@drawable/circularprogress"
            android:visibility="gone"
            android:layout_centerHorizontal="true"
            android:layout_centerVertical="true"/>

在AsyncTask方法中:

@Override
protected void onPreExecute()

    progressbar_view.setVisibility(View.VISIBLE);

    // your code

在 onPostExecute 中:

@Override
protected void onPostExecute(String s)

    progressbar_view.setVisibility(View.GONE);

    //your code

【讨论】:

【参考方案8】:

您可以将ProgressBar 添加到列表视图页脚:

private ListView listview;
private ProgressBar progressBar;

...

progressBar = (ProgressBar) LayoutInflater.from(this).inflate(R.layout.progress_bar, null);

listview.addFooterView(progressBar);

布局/progress_bar.xml

<?xml version="1.0" encoding="utf-8"?>
<ProgressBar xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/load_progress"
    android:layout_
    android:layout_
    android:indeterminate="true"
     />

当数据加载到适配器视图调用时:

        listview.removeFooterView(progressBar);

【讨论】:

【参考方案9】:

我建议你在使用 listview 或 recyclerview 时使用 SwipeRefreshLayout。像这样

    <android.support.v4.widget.SwipeRefreshLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/swiperefresh"
    android:layout_
    android:layout_>

        <android.support.v7.widget.RecyclerView
            android:id="@+id/card_recycler_view"
            android:scrollbars="vertical"
            android:layout_
            android:layout_/>

</android.support.v4.widget.SwipeRefreshLayout>

仅包裹您的视图,这将在加载数据或向下滑动屏幕时创建刷新动画,就像我们在许多应用中所做的那样。 以下是如何使用它的文档:https://developer.android.com/training/swipe/add-swipe-interface.html https://developer.android.com/training/swipe/respond-refresh-request.html

编码愉快!

【讨论】:

【参考方案10】:

在按钮 onClick 选项或您的需要中使用它。

final ProgressDialog progressDialog;
progressDialog = new ProgressDialog(getApplicationContext());
progressDialog.setMessage("Loading..."); // Setting Message
progressDialog.setTitle("ProgressDialog"); // Setting Title
progressDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER); // Progress Dialog Style Spinner
progressDialog.show(); // Display Progress Dialog
progressDialog.setCancelable(false);
new Thread(new Runnable() 
    public void run() 
        try 
            Thread.sleep(5000);
         catch (Exception e) 
            e.printStackTrace();
        
        progressDialog.dismiss();
    
).start();

【讨论】:

【参考方案11】:

进程栏:

依赖:

     implementation 'com.github.castorflex.smoothprogressbar:library:1.0.0'

XML:

     <fr.castorflex.android.smoothprogressbar.SmoothProgressBar
        xmlns:android="http://schemas.android.com/apk/res/android"                
        xmlns:app="http://schemas.android.com/apk/res-auto"
        android:id="@+id/myProcessbar"
        android:layout_
        android:layout_
        android:indeterminate="true" />

在 Res->颜色中

      <color name="pocket_color_1">#ff1635</color>
      <integer-array name="pocket_background_colors">
          <item>@color/pocket_color_1</item>
      </integer-array>

      <color name="pocket_color_stop">#00ff00</color>
      <integer-array name="pocket_background_stop">
          <item>@color/pocket_color_stop</item>
      </integer-array>

在主要:

      public class MainActivity extends AppCompatActivity
        SmoothProgressBar smoothProgressBar;

        @Override
        protected void onCreate(Bundle savedInstanceState) 
          super.onCreate(savedInstanceState);
          setContentView(R.layout.activity_main);
          smoothProgressBar=findViewById(R.id.myProcessbar);
          showProcessBar();
          stopAnimation();    // call when required to stop process
        

        public void showProcessBar()
          smoothProgressBar.setVisibility(View.VISIBLE);
          smoothProgressBar.setIndeterminateDrawable(new SmoothProgressDrawable.Builder(getApplicationContext())
            .interpolator(new AccelerateInterpolator())
            .progressiveStart(true)
            .progressiveStopSpeed(1000)
            .build());
          smoothProgressBar.setSmoothProgressDrawableBackgroundDrawable(
          SmoothProgressBarUtils.generateDrawableWithColors(
                    getResources().getIntArray(R.array.pocket_background_colors),
                    ((SmoothProgressDrawable)  smoothProgressBar.getIndeterminateDrawable()).getStrokeWidth()));
        

        public void stopAnimation()
          smoothProgressBar.setSmoothProgressDrawableBackgroundDrawable(
          SmoothProgressBarUtils.generateDrawableWithColors(
                    getResources().getIntArray(R.array.pocket_background_stop),
                    ((SmoothProgressDrawable)  smoothProgressBar.getIndeterminateDrawable()).getStrokeWidth()));
          smoothProgressBar.progressiveStop();
          Handler handler=new Handler();
          handler.postDelayed(new Runnable() 
            @Override
            public void run() 
               smoothProgressBar.animate().alpha(0.0f).setDuration(6000).translationY(1000);
               smoothProgressBar.setVisibility(View.GONE);
            
          ,1000);


      

【讨论】:

【参考方案12】:

我正在使用这个:

loading = ProgressDialog.show(example.this,"",null, true, true);

【讨论】:

以上是关于如何在使用数据加载列表视图之前在具有列表视图的活动中显示进度条(圆圈)的主要内容,如果未能解决你的问题,请参考以下文章

如何将可扩展列表视图的选定子视图数据从片段发送到父活动?

我如何使用意图从列表视图转到下一个活动? [复制]

如何子列表视图项目可以有每个项目的数据

如何使用列表视图在选项卡式活动的片段中呈现 SQLite 表数据 [重复]

如何将子列表视图项目包含每个项目的数据

如何在刷新表视图之前获取视图模型中的存储库列表?