В Fragment1 раздуйте XML-макет кнопкой. Установите кнопку onClickListener и определите метод onClick.
// In Fragment1...
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.layoutWithButton, container, false);
Button b = (Button) view.findViewById(R.id.myButton);
b.setOnClickListener(this);
return view;
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.layoutWithButton:
Fragment fragment2 = new Fragment2;
FragmentTransaction transaction = getActivity().getSupportFragmentManager().beginTransaction();
transaction.replace(R.id.container, fragment2); // where container is the FrameLayout where Fragment 1 was first placed
transaction.commit();
break;
default:
break;
}
В зависимости от того, как вы хотите обрабатывать спину стек, вы можете включить transaction.addToBackStack(null);
по мере необходимости.