2014-10-05 85 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

相關問題