Last active
November 1, 2017 17:11
-
-
Save afiqiqmal/55b7052a85211a11546508d9c2cfc873 to your computer and use it in GitHub Desktop.
Android Viewpager Wait Fragment Finish Load. After several attempt on how to wait all the fragment in view pager is loaded, i came out a solution where i create interface class to communicate between activity and the fragment.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
public interface OnFragmentFinishLoad { | |
public void onFinish(String tag,boolean state); | |
} | |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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); | |
} | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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); | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment