3

私の相対レイアウトには2つの子Rcyclerview(Invisible)とプログレスバーがあります。ProgressBarが表示されない

私が欲しいものはです:AsyncTask(SDフォルダから画像を取得する)が完了し、recyclerviewが表示され、プログレスバーが見えなくなるまで、レイアウトの作成、recyclerviewの表示とプログレスバーの表示。

何が起こっているのですか:私のアプリはプログレスバーを表示していません。 asyctaskが完了すると、私のrecyclerビューが表示されます。

XML:

<RelativeLayout 
       android:layout_width="match_parent" 
       android:layout_height="match_parent" 
       android:layout_below="@+id/view3"> 

       <android.support.v7.widget.RecyclerView 
        android:layout_width="match_parent" 
        android:layout_height="wrap_content" 
        android:paddingTop="5dp" 
        android:divider="@null" 
        android:visibility="invisible" 
        android:id="@+id/recycler_view_cameragallery" 
        android:dividerHeight="0dp" 
        android:fadingEdge="none" /> 

       <ProgressBar 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:id="@+id/progressBar_Gallery" 
        style="?android:attr/progressBarStyleLarge" 
        android:layout_centerInParent="true" 
        android:layout_gravity="center" 
        android:padding="12dp" /> 
      </RelativeLayout> 

ActivityCode:

public View onCreateView(LayoutInflater inflater,@Nullable ViewGroup container,@Nullable Bundle savedInstanceState){ 

     View rootView=inflater.inflate(R.layout.camera_layout,container,false); 
     rootView.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, 
       ViewGroup.LayoutParams.MATCH_PARENT)); 
     ButterKnife.inject(this,rootView); 
     init(); 
     initialise(rootView); 
     initialiseListeners(); 
     listofImagesPath = new ArrayList<String>(); 
     new mediaScanAyscTask().executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);} 

AsyncTask

public class mediaScanAyscTask extends AsyncTask<Void,Void,Void>{ 

     @Override 
     protected Void doInBackground(Void... params) { 

      return null; 
     } 

     @Override 
     protected void onPreExecute() { 
      super.onPreExecute(); 
      adapter.clearApplications(); 
      galleryProgressBar.setVisibility(View.VISIBLE); 
      galleryProgressBar.getIndeterminateDrawable().setColorFilter(Color.parseColor("#ff4081"), PorterDuff.Mode.MULTIPLY); 
      cameraRecyclerView.setVisibility(View.INVISIBLE); 

     } 

     @Override 
     protected void onPostExecute(Void aVoid) { 
      listofImagesPath = RetriveCapturedImagePath(); 

      if(listofImagesPath!=null){ 
       adapter.addApplications(listofImagesPath); 
      } 
      galleryProgressBar.setVisibility(View.INVISIBLE); 
      cameraRecyclerView.setVisibility(View.VISIBLE); 
      super.onPostExecute(aVoid); 
     } 
    } 

私はどこが間違っているのかを強調して助けてください。

+0

は目に見えない –

+0

@ShashankUdupaの代わりに行ってにリサイクルビューの可視性を変更してみてください:いいえ、まだ –

+0

を働いていない私は、プログレスバーがプログレス –

答えて

1

私はこの答えはあなたを助けることを願っています。レイアウトではなくinvisable

+0

いいえ、まだ消えて見えなくしないようにandroid.support.v7.widget.RecyclerViewセットの可視性にyoung_08 @ –

+0

を示していない、あなたのxmlファイルにプログレスバーの表示を変更しないでください –

+0

は、私はこれを行っているが、それでもまだ、ありません同じ問題 –

0

より行ってください。

@Override 
protected void onPostExecute(Void aVoid) { 
    listofImagesPath = RetriveCapturedImagePath(); 
     if(listofImagesPath!=null){ 
      adapter.addApplications(listofImagesPath); 
     } 
    galleryProgressBar.setVisibility(View.GONE); 
    cameraRecyclerView.setVisibility(View.VISIBLE); 
    super.onPostExecute(aVoid); 
} 

2番目のオプションは、あなたのProgressBar.xmlからファイルを削除し、プログラムを作成します。私の場合は

class YourClassName extends AsyncTask<String, Void, Boolean>{ 
    ProgressDialog dialog; 

    @Override 
    protected void onPreExecute() { 
     super.onPreExecute(); 
     dialog = new ProgressDialog(Detail_Activity.this); 
     dialog.setTitle("your title"); 
     dialog.setMessage("your message"); 
     dialog.setCancelable(false); 
     dialog.show(); 
    } 

    @Override 
    protected Boolean doInBackground(String... params) { 
     return null; 
    } 

    @Override 
    protected void onPostExecute(Boolean aBoolean) { 
     super.onPostExecute(aBoolean); 
     dialog.cancel(); 
    } 
} 
+0

に直面します表示されません。これは私のために働いていない –

+0

私は上記の2番目のコードを試してください。それはあなたを助けるでしょう。 – suraj

+0

まだ動作しません。何が起こっている:プログレスバーを表示するデバッグでは、私は正常に実行するときにまだ –

-1
Try this 
<ProgressBar 
    style="@android:style/Widget.ProgressBar.Horizontal" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:progress="100" 
    android:id="@+id/progress"/> 
+1

あなたの答えを説明してくれるので、ユーザーはそれをより明確にします –

+0

この属性style =?android:attr/progressBarStyleLargeプログラマはprogressBarの制限された制御を行い、 100 "あなたはこの属性style =" @ android:style/Widget.ProgressBar.Horizo​​ntal "を使用するために新規です。 – Franklyn

+1

[コメントは一時的であり、いつでも削除することができることに注意してください](http://stackoverflow.com/help/privileges/comment )。追加情報がある場合は、投稿の下の[[編集]]リンクをクリックして回答を更新してください。ありがとうございました。 – Pang

11

、エミュレータは、アニメーションは、開発者モードでOFFになっていたので、私は、プログレスバーを見ることができませんでした。

+0

あなたは命を救っています! –

0

私はProgressBarRecyclerViewの下に行く理由は同じ理由がありました。 RecyclerViewProgressBarFrameLayoutにラップする必要があります。

<RelativeLayout 
       android:layout_width="match_parent" 
       android:layout_height="match_parent" 
       android:layout_below="@+id/view3"> 
     <FrameLayout 
       android:layout_width="match_parent" 
       android:layout_height="match_parent"> 

       <android.support.v7.widget.RecyclerView 
        android:layout_width="match_parent" 
        android:layout_height="wrap_content" 
        android:paddingTop="5dp" 
        android:divider="@null" 
        android:visibility="invisible" 
        android:id="@+id/recycler_view_cameragallery" 
        android:dividerHeight="0dp" 
        android:fadingEdge="none" /> 

       <ProgressBar 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:id="@+id/progressBar_Gallery" 
        style="?android:attr/progressBarStyleLarge" 
        android:layout_centerInParent="true" 
        android:layout_gravity="center" 
        android:padding="12dp" /> 
     </FrameLayout> 
    </RelativeLayout> 
関連する問題