- Create Interface Class
- Implement it on Activity class
- Call it from each fragment at the off each process
Change Snippet Background Color
Create Interface as bridge between fragment and activity
public interface OnFragmentFinishLoad {
public void onFinish(String tag,boolean state);
}
Now Create Activity Class contain Viewpager.. (Code not complete)
public class PizzaActivity extends BaseActivity implements OnFragmentFinishLoad {
@BindView(R.id.cover_rl)
protected RelativeLayout cover_rl;
int countLoad = 0;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_carte_tab_layout);
cover_rl.setVisibility(View.VISIBLE);
setupViewPager(viewPager);
mTabLayout.setupWithViewPager(viewPager);
setupTabLayout(mTabLayout);
……
}
@Override
public void onFinish(String tag, boolean state) {
if (state)
countLoad++;
//cat.size() is the number of fragment in view pager.
//each time fragment trigger this function, there will return true and countLoad will increase
//if number of true == cat.size() the loading will disappear
if (countLoad == cat.size() - 1) {
cover_rl.setVisibility(View.GONE);
}
}
}
Then, Create Fragment class,
public class PizzaFragment extends BaseFragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
return inflater.inflate(R.layout.default_fragment, container, false);
}
@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
...
...
//run task
new AsyncDataTaskPizza().execute();
}
private class AsyncDataTaskPizza extends AsyncTask < Void, Void, Void > {
@Override
protected void onPreExecute() {
super.onPreExecute();
}
@Override
protected Void doInBackground(Void... params) {
//HTTP Call or else
}
@Override
protected void onPostExecute(List < PizzaDetail > result) {
// call this function after finish load everything
((OnFragmentFinishLoad) getActivity()).onFinish(null, true);
}
}
}
Create other Fragment class, do like the same or something else but last process must end with ((OnFragmentFinishLoad) getActivity()).onFinish(null, true);This is how i manage and i found that more easier to listen when all fragment in ViewPager is finish loading. :D
Wonderfully explained. Test Automation Framework
ReplyDeleteis an automated software testing tool that makes it easy for you to create, deploy, and manage your automated tests. Eiliana.com is a freelancing platform that provides a safe environment where you can get quality services from reliable professionals at affordable prices. Sign up today.