2014-10-05 69 views
4

我有一个填充AsyncTask ListView。在运行时,ListView变为不可见,ProgressBar显示在水平中心,在AsyncTask完成后消失,并且ListView再次显示。现在,它看起来像这样:如何在ListView中放置一个ProgressBar?

enter image description here

但我需要进度显示ListView控件的内部,水平和垂直居中:

enter image description here

这是我的布局标记:

<?xml version="1.0" encoding="utf-8"?> 

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
       android:orientation="vertical" 
       android:layout_width="match_parent" 
       android:layout_height="match_parent" 
       android:layout_weight="1"> 

    <LinearLayout 
      android:id="@+id/LinearHeaderProgress" 
      android:layout_width="fill_parent" 
      android:layout_height="fill_parent" 
      android:gravity="center" 
      android:orientation="vertical" 
      android:visibility="gone"> 

     <ProgressBar 
       android:id="@+id/HeaderProgress" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content"> 
     </ProgressBar> 
    </LinearLayout> 

    <ListView 
      android:layout_width="fill_parent" 
      android:layout_height="0dp" 
      android:layout_weight="1" 
      android:id="@+id/listView"/> 
</LinearLayout> 

我该如何做到这一点?

谢谢。

回答

4

尝试使用的RelativeLayout这样,

 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:layout_weight="1" 
     android:orientation="vertical" > 

     <ProgressBar 
      android:id="@+id/HeaderProgress" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_centerInParent="true" > 
     </ProgressBar> 

     <ListView 
      android:id="@+id/listView" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" /> 

    </RelativeLayout> 
+3

另外,在onCreate()方法,设置进度条作为空视图。 'listView.setEmptyView(findViewById(R.id.HeaderProgress));'然后,当你的列表填充数据时,进度条将消失。 – hfann 2014-10-05 14:36:48

+0

@hfann今天我学到了一些新东西,谢谢,我会试试看。 – Chitrang 2014-10-05 14:39:01

+0

@Chitrang,谢谢,它的工作原理! @hfann,而不是'.setEmptyView()'我在'onPostExecute()'方法中使用'.setVisibility(View.GONE);'。 – 2014-10-05 15:10:32

相关问题