A fragment navigation library
Fragment navigator is a simple way to navigate between fragments.
public class MainActivity extends FragmentActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
getNavigator().navigateTo(FragmentA.class);
}
@Override
public int getFragmentContainerID() {
return R.id.fragmentContainer;
}
}
public class FragmentA extends BaseFragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
super.onCreateView(inflater, container, savedInstanceState);
final View root = inflater.inflate(R.layout.fragment_a, null);
root.findViewById(R.id.nextButton).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
getNavigator().navigateTo(new FragmentB());
}
});
return root;
}
}
public class FragmentC extends BaseFragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
super.onCreateView(inflater, container, savedInstanceState);
View root = inflater.inflate(R.layout.fragment_c, null);
root.findViewById(R.id.nextButton).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
getNavigator().navigateTo(FragmentD.class, new FragmentDBehavior2());
}
});
return root;
}
@Override
public boolean onBackPressed() {
getNavigator().navigateTo(FragmentB.class);
return true;
}
}
You can try it out with the above example or add it to your module level gradle file:
compile 'com.gabor.fragment-navigation:app:1.5.0'