ProgressBar没有显示

我的相对布局有两个子Rcyclerview(不可见)和进度条

我想要的是 :布局的创建,recyclelerview到隐形和进度条显示,直到AsyncTask(从SD文件夹获取图像)完成,Recyclerview可见,进度条不可见。

发生了什么 :我的应用程序没有显示进度条。 在asyctask完成后,我的recyclerview出现了。

XML:

    

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(); new mediaScanAyscTask().executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);} 

的AsyncTask

 public class mediaScanAyscTask extends AsyncTask{ @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); } } 

请突出我错在哪里帮助我。

在我的情况下,模拟器在开发者模式中关闭了animation,因此我看不到进度条。

让你的布局消失而不是隐形

我希望这个答案会对你有所帮助。

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

第二个选项是从.xml文件中删除ProgressBar并以编程方式创建。

 class YourClassName extends AsyncTask{ 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(); } } 

我有同样的问题,原因是ProgressBar到了RecyclerView的底部。 您需要将RecyclerViewProgressBar包装到FrameLayout

       
 Try this