2017-03-14 2 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

관련 문제