2 つのフラグメントを含むアプリケーションを開発しており、必要に応じて非表示にしたいと考えています。次のコードには、私の問題の簡単な例があります。この単純な Fragmentactivity には、1 つのボタンと 1 つのリストフラグメントが含まれています。
この単純な例は問題なく動作します。しかし、私は show hide fragment に満足していません。layout.setVisibility(View.GONE); を削除すると、コードから ft.hide(f); フラグメントを非表示にしません。実際、フラグメントを隠しているのではなく、コンテナーを隠しています。
私の質問は、これは非表示のフラグメントを表示する方法ですか? そうでない場合は、多くの人がこの問題に直面しているため、フラグメントを非表示および表示する方法をテスト済みの例で説明してください。
public class MainActivity extends FragmentActivity implements OnClickListener {
Fragment1 f;
Button b;
LinearLayout layout;
Fragment myf;
@Override
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
b = (Button) findViewById(R.id.button1);
layout = (LinearLayout) findViewById(R.id.ll);
f = new Fragment1();
}
@Override
public void onClick(View v) {
FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
ft.setCustomAnimations(android.R.animator.fade_in, android.R.animator.fade_out);
if (f.isHidden()) {
ft.show(f);
layout.setVisibility(View.VISIBLE);
b.setText("Hide");
} else {
ft.hide(f);
b.setText("Show");
layout.setVisibility(View.GONE);
}
ft.commit();
// TODO Auto-generated method stub
}