Skip to content

Instantly share code, notes, and snippets.

@truedem
Created August 3, 2016 21:26
Show Gist options
  • Select an option

  • Save truedem/a776ca016042f5a910daa92c8461944d to your computer and use it in GitHub Desktop.

Select an option

Save truedem/a776ca016042f5a910daa92c8461944d to your computer and use it in GitHub Desktop.
Activity code for backstack operations with fragments
public class MainActivity extends BaseActivity implements FragmentManager.OnBackStackChangedListener {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ButterKnife.bind(this);
getSupportFragmentManager().addOnBackStackChangedListener(this);
if (savedInstanceState == null) {
// setupSomeListFragment(); // <= content invocation
}
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();
if (id == android.R.id.home) {
getSupportFragmentManager().popBackStack();
return false;
}
return super.onOptionsItemSelected(item);
}
@Override
public void onBackPressed() {
if (getSupportFragmentManager().getBackStackEntryCount() == 0) {
super.onBackPressed();
} else {
getSupportFragmentManager().popBackStack();
}
}
@Override
public void onBackStackChanged() {
shouldDisplayHomeUp();
}
public void shouldDisplayHomeUp() {
boolean enableHomeUp = getSupportFragmentManager().getBackStackEntryCount() > 0;
ActionBar bar = getSupportActionBar();
if (bar != null) {
bar.setDisplayHomeAsUpEnabled(enableHomeUp);
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment