У меня есть активность с ViewPager, который содержит 2 вкладки. Каждая вкладка является фрагментом хоста, который имеет 2 дочерних фрагмента. Первые фрагменты - это взгляды переработчика, которые открывают другие фрагменты с помощью FragmentTransactions. У меня проблемы с созданием разных backstacks для них.
Таким образом, в моем адаптере утилита просмотра в onBindViewHolder у меня есть onclicklistener, подобный следующему:
holder.image.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
FirstFragment fragment1 = new FirstFragment();
SecondFragment fragment2 = new SecondFragment();
FragmentManager fm = ((FragmentActivity) view.getContext()).getSupportFragmentManager();
FragmentTransaction transaction = fm.beginTransaction();
transaction
.replace(R.id.frame_container, fragment2,"Tag")
.addToBackStack(null)
.commit();
}
});
Если я сделаю транзакцию, подобную этой, из утилита просмотра, backstack будет одинаковым для обеих вкладок, поэтому если я открою вторые фрагменты на tab1, то на tab2, если я go вернусь к tab1 и нажму назад, второй фрагмент на tab2 выскочит изнутри.
Если я сделаю кнопку в FirstFragment за пределами Просмотрите и сделайте фрагмент транзакции из FirstFragment следующим образом:
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
final FragmentTransaction ft = getFragmentManager().beginTransaction();
ft.replace(R.id.frame_container, SecondFragment.newInstance(), "Tag");
ft.addToBackStack(null);
ft.commit();
}
});
, тогда он будет работать, как задумано, но я хочу сделать это из обзора переработчика.
Есть ли способ, которым это можно сделать