私は2つのフラグメントを持っています:
- 最初のフラグメントは中央の大きなボタンで構成されて
OnClickListener
います。このビューに (プログラムで) を設定し、クリックすると最初のフラグメントを 2 番目のフラグメントに置き換えます。 - 2 番目のフラグメントは空のフラグメントです
まず、フラグメント番号を表示します。1. 次にボタンを押すと、予想どおり、2 番目のフラグメントが表示されます。
問題: 2 番目のフラグメントが表示され、その中央をクリックすると、現在ボタンのない EMPTY FRAGMENT を表示しているにもかかわらず、 1 番目のフラグメントOnClickListener
のボタンの背後にあるコードが起動します。
アイデア?
コードは次のとおりです。
public void onLargeButtonClick(View view){
secondFragment fragment = new secondFragment();
fragmentFactory.replaceFragment(fragment);
}
void replaceFragment(Fragment fragment){
FragmentManager fragmentManager = activity.getSupportFragmentManager();
String fragmentName = fragment.getClass().getSimpleName();
Fragment existingFragment = fragmentManager.findFragmentByTag(fragmentName);
if (existingFragment != null)
fragmentManager.popBackStack(fragmentName, FragmentManager.POP_BACK_STACK_INCLUSIVE);
FragmentTransaction ft = activity.getSupportFragmentManager().beginTransaction();
ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN);
ft.replace(R.id.first_fragment, fragment);
ft.addToBackStack(null);
ft.commit();
}
メインレイアウトには、置き換えるフラグメントが含まれています
<fragment
android:name="com.app.firstfragment"
android:id="@+id/first_fragment"
android:layout_width="match_parent"
android:layout_height="match_parent"
>
</fragment>