2017-03-14 11 views
0

Iカスタムプログレスバーのサンプルプログラムを作成しました。それは動作しているが、私が直面している問題は、プログレスバーが画面の中央に設定されていないということです。カスタムプログレスバーを中央に設定する方法は?

私は進捗バーを表示する前にリストの表示項目を表示する必要があります。

ここに私の完全なコードは以下の通りです: - このよう

main.xml

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    android:orientation="vertical" 
    android:layout_height="match_parent"> 
<LinearLayout 
    android:layout_width="match_parent" 
    android:gravity="center" 
    android:layout_height="match_parent"> 
    <com.wang.avi.AVLoadingIndicatorView 
     android:layout_width="wrap_content" 
     android:background="#000" 
     android:layout_gravity="center" 
     android:layout_height="wrap_content" 
     style="@style/AVLoadingIndicatorView.Large" 
     app:indicatorName="BallPulseIndicator" 
     android:id="@+id/avi" 
     /> 
    <ListView 
     android:id="@+id/visitor_listview" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" /> 
</LinearLayout> 


</LinearLayout> 

main.java

private AVLoadingIndicatorView avi; 
    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 
     View view = inflater.inflate(R.layout.activity_rorder, container, false); 
     getActivity().setTitle("Order"); 
     String indicator=getActivity().getIntent().getStringExtra("indicator"); 
     avi= (AVLoadingIndicatorView)view.findViewById(R.id.avi); 
     avi.setIndicator(indicator); 

     new DownloadJSON().execute(); 
     return view; 
    } 
    private class DownloadJSON extends AsyncTask<Void, Void, Void> { 


     @Override 
     protected void onPreExecute() { 
      super.onPreExecute(); 
      avi.show(); 
//   avi.setVisibility(View.VISIBLE); 
      /* 
      mProgressDialog = new ProgressDialog(getActivity()); 
      mProgressDialog.setTitle("Please Wait"); 
      mProgressDialog.setMessage("Loading..."); 
      mProgressDialog.setIndeterminate(false); 

      mProgressDialog.show(); 
*/ 

     } 

     @Override 
     protected Void doInBackground(Void... args) { 
      try { 
     } 
     @Override 
     protected void onPostExecute(Void args) { 
//   mProgressDialog.dismiss(); 
       avi.hide(); 
     } 
    }  

} 

私がしようとしたが、助けてください動作していません私からこれを出してください。

答えて

1

trueにListViewAVLoadingIndicatorView、および設定AVLoadingIndicatorViewlayout_centerInParent属性の親としてRelativeLayoutを使用してみてください:

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

    <RelativeLayout 
     android:layout_width="match_parent" 
     android:layout_height="match_parent"> 

     <com.wang.avi.AVLoadingIndicatorView 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_centerInParent="true" 
      android:background="#000" 
      style="@style/AVLoadingIndicatorView.Large" 
      app:indicatorName="BallPulseIndicator" 
      android:id="@+id/avi"/> 

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

    </RelativeLayout> 

</LinearLayout> 
+0

yup thnq ..それは働いています。 – Andie

0

は、単にあなたが進捗ダイアログを使用することができます。例を以下に示します

 ProgressDialog progressDialog; 
     @Override 
     protected void onPreExecute() { 

      progressDialog = ProgressDialog.show(getActivity(), "", "Please Wait ", true, false); 

     } 

     @Override 
     protected void onPostExecute(Void result) { 

        if(progressDialog.isShowing()){ 
        progressDialog.dismiss(); 
       } 

     } 
+0

しかし、私はカスタムプログレスを使用したいと思います。 – Andie

関連する問題