Je développe une application qui contient 2 fragments et je veux les afficher et les cacher selon mes besoins. Le code suivant est un exemple simple de mon problème. Cette simple activité de fragmentation contient un bouton et un fragment de liste.
Cet exemple simple fonctionne parfaitement. Mais je ne suis pas satisfait du fragment show hide. Si vous supprimez layout.setVisibility(View.GONE) ; du code, alors ft.hide(f) ; ne cachera pas le fragment. En fait, nous ne cachons pas le fragment mais le conteneur.
Ma question est la suivante : est-ce un moyen de montrer les fragments cachés ? Si ce n'est pas le cas, veuillez expliquer, à l'aide d'un exemple testé, comment masquer et afficher les fragments, car de nombreuses personnes sont confrontées à ce problème.
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
}