Navigation tiroir dans android n'est pas en plein écran
Depuis le google a introduit la navigation de tiroir, j'ai essayé d'utiliser ce composant pour créer un facebook-like menu. Le problème est , l'effet visuel est semble être différent.
Google a la barre d'action à retenir lorsque le tiroir est ouvert, tout en le facebook on n'a pas.Au lieu de cela, l'écran entier a poussé à droite
J'ai trouvé il y a quelques lib pouvez atteindre cet objectif, mais depuis je préfère ne pas inclure tiers lib dans le projet, il n'existe aucun moyen pour y parvenir ? Grâce
Code basé sur la navigation tiroir tutoriel
protected void setupMenu(List<String> list, final ListView menu) {
Adapter customAdapter = new Adapter(getActionBar().getThemedContext(),
R.layout.item, list);
menu.setAdapter(customAdapter);
menu.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view,
final int pos, long id) {
String selected = ((TextView) view.findViewById(R.id.itemTxt))
.getText().toString();
//define pass data
final Bundle bData = new Bundle();
bData.putString("itemSelect", selected);
drawer.setDrawerListener(new DrawerLayout.SimpleDrawerListener() {
@Override
public void onDrawerClosed(View drawerView) {
super.onDrawerClosed(drawerView);
FragmentTransaction tx = getSupportFragmentManager()
.beginTransaction();
tx.replace(R.id.mainContent, Fragment.instantiate(
MainActivity.this,
"com.example.utilities.ContentPage", bData));
tx.commit();
}
});
drawer.closeDrawer(menu);
}
});
}
InformationsquelleAutor user782104 | 2013-11-25
Vous devez vous connecter pour publier un commentaire.
Bien la création d'une navigation personnalisée tiroir est la meilleure solution pour vous.
Je comprends que vous ne souhaitez pas utiliser de tiers, mais cela peut être une solution rapide à votre problème de Glissement Menu Lib lien.
Espère que cette Aide.
Supprimer les deux dernières lignes
dans le code par défaut
Ici est une solution rapide qui a fonctionné pour moi :
Définir la largeur de mise en page . Pour les appareils avec différentes taille de l'écran vous pouvez définir dynamiquement la largeur de cette mise en page inclus .
Tout le meilleur !!!!
Si vous allez vérifier le code source de DrawerLayout, vous verrez, que resposnible ce minimum, la marge est la variable mMinDrawerMargin
Donc, il y a au moins 2 solutions(astuces)
1. étendre DrawerLayout et de définir cette variable à 0 avec la réflexion.
l'appel de cette méthode auprès de tous les constructeurs.
overryde onMeasure méthode comme ceci
J'ai aussi créé des exemples de projet ici https://bitbucket.org/wnc_21/fsnavigationdrawer
ce problème est causé par la marge et nous devons réinitialiser la largeur :
j'ai résolu ce problème par la mise en œuvre de DrawerListener et l'emballage ListView à l'intérieur d'un LinearLayout pour faire des chambres pour les autres points de vue à côté de la vue liste
voici mon écouteur
voici ma présentation :
Si vous souhaitez mettre en place comme facebook menu coulissant, puis vous utilisez les androïdes SlidingPaneLayout au lieu de NavigationDrawer.
ajouter une barre d'outils au lieu de actionbar et ne pas appliquer de actionbar thème.