Le tiroir de navigation ne se ferme pas
La navigation tiroir de mon application n'est pas à la fermeture. Je suis à l'aide d'activités au lieu de fragments. Lorsque je clique sur n'importe quel élément dans la listview
il s'ouvre à d'autres activités comme il faut mais quand je reviens, le tiroir est ouvert. J'ai essayé d'utiliser DrawerLayout.closeDrawers();
mais cela n'a pas fonctionné. Comment puis-je fermer le tiroir de navigation?
Voici mon code:
Java
public class MainActivity extends FragmentActivity {
final String[] data ={"Aluminium","Gold","Zinc"};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, data);
final DrawerLayout drawer = (DrawerLayout)findViewById(R.id.drawer_layout);
final ListView navList = (ListView) findViewById(R.id.left_drawer);
navList.setAdapter(adapter);
navList.setOnItemClickListener(new AdapterView.OnItemClickListener(){
@Override
public void onItemClick(AdapterView<?> parent, View view, final int pos,long id){
switch (pos){
case 0:
Intent i = new Intent(MainActivity.this,Aluminium.class);
startActivity(i);
break;
case 1:
Intent i2 = new Intent(MainActivity.this,Gold.class);
startActivity(i2);
break;
case 2:
Intent i3 = new Intent(MainActivity.this,Zinc.class);
startActivity(i3);
break;
}
}
});
}
}
XML
<android.support.v4.widget.DrawerLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/drawer_layout"
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="match_parent">
<!-- The main content view -->
<FrameLayout
android:id="@+id/content_frame"
android:layout_width="match_parent"
android:background="#000000"
android:layout_height="match_parent" >
</FrameLayout>
<ListView android:id="@+id/left_drawer"
android:layout_width="220dp"
android:layout_height="match_parent"
android:layout_gravity="start"
android:choiceMode="singleChoice"
android:divider="@android:color/transparent"
android:dividerHeight="1dp"
android:background="#000000"/>
</android.support.v4.widget.DrawerLayout>
source d'informationauteur Chinmay Dabke
Vous devez vous connecter pour publier un commentaire.
avez-vous essayé :
Vous pouvez ajouter ceci avant d'appeler
startActivity()
Dans le prolongement d'autres réponses et @ Chinmay Dabke question de la "mais le tiroir se ferme moitié, puis pause, puis se ferme entièrement" dans un des commentaires, ici est ce que vous pourriez faire:
d'abord, comme d'autres l'ont suggéré,
cette ligne est manquante.
drawer.closeDrawer(navList);
Et aussi loin que l'arrêt de tiroir est concerné lors de la fermeture, vous pourriez faire quelque chose comme cela.
utiliser un Exécutable et un Gestionnaire comme ceci:
et puis dans le
onDrawerClosed
surdéfini méthodeEspérons que cette aide!
Je vous suggère d'utiliser des fragments pour la navigation de tiroir et de résoudre ce problème de tiroir ne ferme pas correctement, j'ai trouvé cet article très utile (à l'aide de fragments). http://www.michenux.net/android-asynctask-in-fragment-best-pratices-725.html
Appel
dans
onItemClick()
méthodeEssayer
drawer.closeDrawer(Gravity.START);
Votre
drawer
la gravité eststart
donc l'Utiliser pour fermer le correspondantdrawer
Je ne vois pas de code où vous êtes à la clôture de la liste de tiroir... à proximité de la ListView Tiroir sur ListItem cliquez sur...
Vous devez fermer le tiroir sur la liste élément, cliquez sur
Aussi qu'est-ce que l'utilisation de
FrameLayout
dans votre xml. Il n'est pas utilisé comme un conteneur pour ajouter ou remplacer des fragmentsutilisation
Dans onResume() et début de la onItemClick() la méthode.
ou vous pouvez essayer une autre approche..exécuter un thread d'Interface utilisateur lorsque vous sélectionnez le tiroir de l'élément de
J'ai eu le même problème.
J'ai utilisé
avant de commencer ma nouvelle activité. Magnifiquement glisse sur le dos de tiroir.
il fonctionne
Voici le code:
Disons que vous avez le tiroir de la classe
dans votre activité à l'appel de la classe et de faire un vaiable et l'affecter(mettre le tiroir de mise en page à l'intérieur d'un fragment pour une expérience utilisateur plus fluide)
Espère que cela aide