* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 2. * * * * * * * * * * * * 100 '* - очень запутанно, потому что вначале показано, как внедрить жестко закодированный фрагмент в ваш xml.Но если вы действительно хотите заменить существующий фрагмент новым, то вы должны добавить его (первый) во время выполнения.
Какой официальный сайт Состояние:
FragmentTransaction replace (int containerViewId, Fragment Fragment, String tag)
Заменить существующий фрагмент, который был добавлен в контейнер.По сути, это то же самое, что вызов метода remove (Fragment) для всех добавленных в данный момент фрагментов, которые были добавлены с тем же containerViewId, а затем для добавления (int, Fragment, String) с теми же аргументами, что и здесь.
Youдолжен заметить, что он говорит, что Заменить существующий фрагмент, который был добавлен в контейнер
Итак, ваш xml должен выглядеть как someActivity.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
...
tools:context="someActivity">
<ImageView
.../>
<LinearLayout
android:id="@+id/fragment_container"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:gravity="bottom"/>
</RelativeLayout>
И чем в вашей деятельности занимаются в OnCreate ()
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
[...]
getSupportFragmentManager().beginTransaction()
.add(R.id.fragment_container, new FirstFragment).commit();
}
Чем вы можете легко заменить фрагмент вашей анимацией, а событие добавить его в задний стек вчтобы сохранить свое состояние.
private SecondFrag getSecondFrag(){
if(secondFrag == null)
secondFrag = new SecondFrag()
return secondFrag;
}
private void openRechargeFragment(){
FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
ft.setCustomAnimations(R.anim.show_frag, R.anim.hide_frag,
R.anim.show_frag, R.anim.hide_frag);
ft.replace(R.id.fragment_container, getSecondFrag(), "myTAG");
ft.addToBackStack(null);
ft.commit();
}