Skip to content

Instantly share code, notes, and snippets.

@followthemoney1
Created August 21, 2017 07:43
Show Gist options
  • Save followthemoney1/22b579be6f17a40f4fb73a73edcd421d to your computer and use it in GitHub Desktop.
Save followthemoney1/22b579be6f17a40f4fb73a73edcd421d to your computer and use it in GitHub Desktop.
///interface
public interface FragmentViewInterface {
void onViewCreated(View layout);
void onResumeFragment();
void onPauseFragment();
}
///in fragment
public void onActivityCreated (Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
try {
FragmentViewInterface callback = (FragmentViewInterface) getActivity();
callback.onViewCreated(root);
} catch (ClassCastException e) {
Log.e("ERROR", getActivity().getCallingPackage()+" must implement FragmentViewInterface");
}
}
@Override
public void onViewCreated(View layout) {
}
@Override
public void onResumeFragment() {
}
@Override
public void onPauseFragment() {
this.removeTextChangedListener();
this.clearEditText();
this.addTextChangeListener();
}
///in main activity
private void init(){
mPager = findViewById(R.id.containerForInputText);
mPagerAdapter = new SlidePagerAdapter(getSupportFragmentManager());
mPager.setAdapter(mPagerAdapter);
mPager.setPagingEnabled(false);
mPager.addOnPageChangeListener(pageChangeListener);
}
private class SlidePagerAdapter extends FragmentPagerAdapter {
LeftUserFragment leftUserFragment = LeftUserFragment.newInstance();
RightUserFragment rightUserFragment = RightUserFragment.newInstance();
public SlidePagerAdapter(FragmentManager fm) {
super(fm);
leftUserFragment.leftUserFragmentPutData(listView, chatArrayAdapter);
rightUserFragment.rightUserFragmentPutData(listView, chatArrayAdapter);
}
@Override
public Fragment getItem(int position) {
if (position == 0) {
return leftUserFragment;
} else {
return rightUserFragment;
}
}
@Override
public int getCount() {
return NUM_PAGES;
}
}
private ViewPager.OnPageChangeListener pageChangeListener = new ViewPager.OnPageChangeListener() {
int currentPosition = 0;
@Override
public void onPageSelected(int newPosition) {
FragmentViewInterface fragmentToShow = (FragmentViewInterface)mPagerAdapter.getItem(newPosition);
fragmentToShow.onResumeFragment();
FragmentViewInterface fragmentToHide = (FragmentViewInterface)mPagerAdapter.getItem(currentPosition);
fragmentToHide.onPauseFragment();
currentPosition = newPosition;
}
@Override
public void onPageScrolled(int arg0, float arg1, int arg2) { }
public void onPageScrollStateChanged(int arg0) { }
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment