Dynamique de l'INTERFACE utilisateur avec le glissement de menu et actionbarsherlock
Essayer de réaliser une INTERFACE utilisateur dynamique avec facebook comme coulissantes menu et actionbarsherlock
.D'abord, j'ai regarder dans android documentation qui introduit un fragment de poignée bouton dynamique. Mais avec pas de chance et une semaine de temps , je ne peux toujours pas le faire fonctionner, de toute façon , je suppose que c'est mon méprendre sur android concept.Le slidingbar et actionbarsherlock de travail sans aucun problème.
J'ai un HomeScreen.java qui contiennent tout mon menu et presetation stade
et jusqu'à présent, j'ai créé un pagerAdapter1.java qui s'étend FragmentPagerAdapter
et trois exemple de fragment de classe que la poignée de mon travail qui est task1.java,task2.java
,task3.java assez simple
voici la partie de mon code
HomeScreen.java
import com.actionbarsherlock.view.Menu;
import com.actionbarsherlock.view.MenuItem;
import com.slidingmenu.lib.SlidingMenu;
import com.slidingmenu.lib.app.SlidingFragmentActivity;
public class HomeScreen extends SlidingFragmentActivity {
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_home_screen);
setBehindContentView(R.layout.menu_frame);
}
PagerAdapter1.java
public class PagerAdapter1 extends FragmentPagerAdapter {
private List<Fragment> fragments;
public PagerAdapter1(FragmentManager fm, List<Fragment> fragments) {
super(fm);
this.fragments = fragments;
}
public Fragment getItem(int position) {
return this.fragments.get(position);
}
public int getCount() {
return this.fragments.size();
}
}
et trois task1.java,2,3
import android.support.v4.app.Fragment;
public class Tab1Fragment extends Fragment{
onCreateView(android.view.LayoutInflater, android.view.ViewGroup, android.os.Bundle)
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
if (container == null) {
return null;
}
return (LinearLayout)inflater.inflate(R.layout.tab_frag1_layout, container, false);
}
Je pense que c'est mieux d'expliquer mon problème avec l'image
Un écran d'accueil qui est un presetation étape , à chaque fois que l'utilisateur cliquez sur menu , cette page vous permettra de modifier la page qu'il veut
et c'est mon menu
Mon problème est de savoir comment dois-je inclure ce 3 fragment dans ma page d'accueil ? j'ai essayé beaucoup de tuto mais cela ne fonctionne pas dans ma situation.La plupart des tutoriel de création fragment de code, je veux juste mes 3 tâche en elle
Vous devez vous connecter pour publier un commentaire.
Vais essayer d'expliquer cet exemple de code et que vous utilisez pour votre besoin.
C'est le ListFragment de votre BehindContent (SlidingMenu):
Ici est votre BaseActivity Classe:
Il n'ont pas de glisser, comme j'ai pu le comprendre, vous n'avez pas besoin de cela.
Ok, Donc, Si vous voulez changer le ColorFragment à autre chose, faites ceci:
D'abord, le choix de l'élément que vous souhaitez utiliser:
à:
J'ai fait juste une liste de tableaux, c'est juste un exemple simple, vous pouvez faire beaucoup de chose, alors vous pouvez lire sur Fragment pour apprendre à faire des choses différentes.
Bien, si vous n'avez pas compris quelque chose, dites-le moi.
Cela dépend vraiment de comment vous comporter.
Vous voulez faire apparaître un seul à la fois, sans permettre swipeing entre eux? Si oui, alors ajouter/insérer un conteneur de mise en page(par exemple une simple
FrameLayout
) dans votreActivity
sur lequel vous allez ajouter de laFragments
. Je n'ai pas travaillé avec leSlidingMenu
bibliothèque, mais il devrait avoir une fonction de callback appelée lorsque vous cliquez sur l'un des éléments dans le menu. Dans ce callback, vous pourrez joindre le bon fragment de récipient de mise en page(leFrameLayout
) je l'ai mentionné plus tôt.Voulez-vous afficher qu'un seul Fragment, mais vous souhaitez autoriser l'utilisateur à passer entre eux? Si oui utiliser un
ViewPager
dans l'activité de mise en page et dans le rappel déclenchée par laSlidingMenu
de la bibliothèque de sélection de menu définir la page actuelle de laViewPager
avec lesetCurrentItem()
méthode.Si vous voulez quelque chose de différent alors c'fournir plus de détails.
Cela, je n'ai pas tout à fait comprendre. Si vous souhaitez inclure", votre tâche fragments directement dans votre mise en page xml, vous pouvez, mais vous serez limité sur ce que vous pouvez faire avec eux(pour ne pas mentionner que tous les fragments seront sur un seul écran) et je voudrais l'éviter. Si vous voulez quelque chose de bien de fournir plus de détails.
FragmentTransaction
devrait résoudre cela, si je comprends ce que vous voulez.Je ne pense pas qu'il va travailler comme ça avec des Fragments, je cherchais une solution et finit par l'ajout de fragments à la main.
Je suis en train de travailler sur quelque chose de similaire comme cela, mais pour moi, il y a aussi le cas de l'ouverture
WebViews
désignés URL. De sorte que la "au-dessus" de l'écran serait toujours mise à jour sur un clic.À contrôler le comportement de cela, j'ai créé un
MenuItemResource
objet, qui, fondamentalement, est titulaire de la propriété, comme l'ID de l'icône, le nom de l'élément de menu et l'URL.Le comportement est géré par un
OnItemClickListener
qui vérifie avec un interrupteur à valeurs dans leMenuItemResource
qui est cliqué. Pour leWebView
il est assez simple:La startFragment méthode utilise juste le
FragmentManager
etFragmentTransaction
à remplacer l'actuelFragment
. Cela fonctionne de la même pour les autresMenuItemResources
qui commencent régulièrement des fragments.Je ne renvoient pas à des fragments dans le
MenuItemResource
(encore), mais ça fonctionne assez bien pour les Url et les WebViews. Les fragments sont commencé basé sur lavalue
dans leMenuItemResource
Je ne suis pas sûr de savoir comment vous renvoie à l'fragments comme vous l'avez fait dans les commentaires (Task1.java, etc), puisque vous n'avez pas à démarrer avec
Intents
commeActivities
. Aussi je ne suis pas sûr de savoir pourquoi vous voulez le faire dynamiquement pour des Fragments (je peux imaginer ce cas d'être dynamique pour WebViews tout de même) car ils ont besoin d'être compilé de toute façon, c'est pourquoi mon menu les éléments sont ajoutés à la main.