我的應用程序中有一個片段,它執行大量後臺工作,因此需要很長時間才能加載。我想從我的主要活動中顯示ProgressBar,並在片段加載後隱藏它。更改片段時顯示ProgressBar - Android
問題是,由於整個UI凍結,進度條不顯示,或者卡住了。
如何在片段加載時顯示ProgressBar?
謝謝。
編輯:代碼裏面片斷:
public override void OnCreate(Bundle savedInstanceState)
{
base.OnCreate(savedInstanceState);
// Create your fragment here
fragments = new Fragment[]
{
new HalachotFragment(),
new BooksFragment(),
};
var titles = CharSequence.ArrayFromStringArray(new[]
{
"הלכות",
"ספרים",
});
tabsAdapter = new TabsFragmentPagerAdapter(ChildFragmentManager, fragments, titles);
}
public override View OnCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
{
// Use this to return your custom view for this Fragment
var view = inflater.Inflate(Resource.Layout.HalachaSection, container, false);
//var progressBar = Activity.FindViewById<ProgressBar>(Resource.Id.progressBar);
halachotPager = view.FindViewById<ViewPager>(Resource.Id.halachotPager);
halachotPager.Adapter = tabsAdapter;
halachotPager.OffscreenPageLimit = 2;
halachotPager.SetCurrentItem(1, true);
// Bind the tabs to the ViewPager
tabs = Activity.FindViewById<TabLayout>(Resource.Id.tabs);
tabs.SetupWithViewPager(halachotPager);
//var toolbar = Activity.FindViewById<Android.Support.V7.Widget.Toolbar>(Resource.Id.toolbar);
tabs.Visibility = ViewStates.Visible;
//progressBar.Visibility = ViewStates.Gone;
return view;
}
BookFragment:
public override View OnCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
{
// Use this to return your custom view for this Fragment
// return inflater.Inflate(Resource.Layout.YourFragment, container, false);
View view = inflater.Inflate(Resource.Layout.Books, container, false);
mRecyclerView = view.FindViewById<RecyclerView>(Resource.Id.booksRecyclerView);
mRecyclerView.NestedScrollingEnabled = false;
mBooks = new List<Book>();
ImageView cover = new ImageView(Activity);
//cover = view.FindViewById<ImageView>(Resource.Id.coverImage);
cover.SetImageResource(Resource.Drawable.Torat_Hamachane1);
mBooks.Add(new Book() { Title = "תורת המחנה א' - הלכות יום ויום", Cover = cover, imageResourceId = Resource.Drawable.Torat_Hamachane1});
//Create our layout manager
mLayoutManager = new GridLayoutManager(Activity, 2);
mLayoutManager.AutoMeasureEnabled = true;
//mRecyclerView.SetForegroundGravity(GravityFlags.CenterHorizontal);
mRecyclerView.SetLayoutManager(mLayoutManager);
SimpleItemAnimator x = null;
mRecyclerView.SetItemAnimator(x);
mAdapter = new RecyclerAdapter(mBooks, mRecyclerView, Activity);
mRecyclerView.SetAdapter(mAdapter);
cover = new ImageView(Activity);
cover.SetImageResource(Resource.Drawable.kitzurTHM);
mBooks.Add(new Book() { Title = "קיצור תורת המחנה - הלכות יום ויום ושבת", Cover = cover, imageResourceId = Resource.Drawable.kitzurTHM, Content = "KitzurTHM/KitzurTHMFull.html" });
cover = new ImageView(Activity);
ImageView newCover = new ImageView(Activity);
newCover.SetImageResource(Resource.Drawable.halkasPurim);
mBooks.Add(new Book() { Title = "הלכה כסדרה - הלכות פורים", Cover = newCover, imageResourceId = Resource.Drawable.halkasPurim });
cover = new ImageView(Activity);
cover.SetImageResource(Resource.Drawable.halkasPesach);
mBooks.Add(new Book() { Title = "הלכה כסדרה - הלכות פסח", Cover = cover, imageResourceId= Resource.Drawable.halkasPesach });
cover = new ImageView(Activity);
cover.SetImageResource(Resource.Drawable.netzach);
mBooks.Add(new Book() { Title = "שו\"ת נצח יהודה", Cover = cover , imageResourceId = Resource.Drawable.netzach});
cover = new ImageView(Activity);
cover.SetImageResource(Resource.Drawable.tankim);
mBooks.Add(new Book() { Title = "טיפול בטנקים בשבת", Cover = cover , imageResourceId = Resource.Drawable.tankim});
cover = new ImageView(Activity);
cover.SetImageResource(Resource.Drawable.tipulBeChalalim);
mBooks.Add(new Book() { Title = "טיפול בחללים בשבת", Cover = cover , imageResourceId = Resource.Drawable.tipulBeChalalim, Content = "TipulBechalalimShabbat.html" });
Refresh();
return view;
}
HalachotFragment解析文件,這也使得它需要很長的時間。
在此處張貼您的代碼 –
您是否在使用asynctask進行後臺工作? – comeback4you
由於整個UI凍結。意味着沒有在工作中工作線程?顯示部分代碼 –