2017-03-14 1 views
0

I Erstellt ein Beispielprogramm für benutzerdefinierte Fortschrittsbalken. Es funktioniert, aber das Problem, mit dem ich konfrontiert bin, ist, dass der Fortschrittsbalken nicht in der Mitte des Bildschirms eingestellt ist.Wie wird die benutzerdefinierte Fortschrittsleiste in der Mitte eingestellt?

Ich muss Listen anzeigen Elemente anzeigen, bevor ich die Fortschrittsleiste anzeigen möchte.

Hier ist meine komplette Code ist wie folgt: -

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(); 
     } 
    }  

} 

wie diese habe ich versucht, aber es funktioniert nicht bitte helfen Ich bin davon weg.

Antwort

1

Versuchen RelativeLayout als Eltern der ListView und AVLoadingIndicatorView und Einstellungen das layout_centerInParent Attribut AVLoadingIndicatorView auf true mit:

<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 .. es funktioniert .. – Andie

0

einfach Sie den Fortschritt Dialog verwenden können. Beispiel ist unten gegeben

 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

aber ich möchte benutzerdefinierten Fortschritt verwenden .. – Andie

Verwandte Themen