Autore Topic: ViewPages con fragmentpageradapter e slidingtab seconda pagina all'avvio  (Letto 422 volte)

Offline Harry551

  • Nuovo arrivato
  • *
  • Post: 7
  • Tapatalk User
  • Respect: 0
    • Mostra profilo
Ciao a tutti è il mio primo post. Vi scrivo per un problema che non sto riuscendo a risolvere in alcun modo e che mi blocca nello sviluppo della mia App da qualche giorno. Voglio implementare degli degli swipe Tab all'interno della mia applicazioni e per ogni pagina dei Tab ci sarà un Fragment con all'interno una ListView inizializzata tramite ArrayList. Ho implementato correttamente i Tab e la ListView ma il ViewPager non si comporta correttamente. All'avvio della sezione il Tab selezionato è quello corretto ma il ViewPager visualizza quella che dovrebbe essere la seconda pagina. Presumo che il problema sia l'adapter ma non riesco a capire come risolvere. A questo link trovate il codice spero di risolvere quanto prima perché altrimenti sono bloccato grazie in anticipo.
http://stackoverflow.com/questions/25443274/viewpager-with-slidingtabs-load-the-second-page

Offline tonno16

  • Utente storico
  • *****
  • Post: 1198
  • Respect: +58
    • Mostra profilo
  • Dispositivo Android:
    moto g
  • Play Store ID:
    Diego Tonini
  • Sistema operativo:
    OpenSuse
Re:ViewPages con fragmentpageradapter e slidingtab seconda pagina all'avvio
« Risposta #1 il: 22 Agosto 2014, 14:27:48 CEST »
0
Io seguii la guida postata su questo forum
http://www.anddev.it/index.php?topic=6717.0

Funzionava bene

Offline Harry551

  • Nuovo arrivato
  • *
  • Post: 7
  • Tapatalk User
  • Respect: 0
    • Mostra profilo
Re:ViewPages con fragmentpageradapter e slidingtab seconda pagina all\'avvio
« Risposta #2 il: 22 Agosto 2014, 14:53:43 CEST »
0
Io seguii la guida postata su questo forum
http://www.anddev.it/index.php?topic=6717.0

Funzionava bene


Ciao ho dato un'occhiata al link da te proposto ma non noto molte differenze con quello che ho fatto io. In ogni caso ho gia seguito molte guide simili.

Post unito: 22 Agosto 2014, 15:41:43 CEST
Risolto! Se a qualcuno interessa sapere come mi faccia sapere che posto il codice modificato.
« Ultima modifica: 22 Agosto 2014, 15:41:43 CEST da Harry551, Reason: Merged DoublePost »

Offline xixietto

Re:ViewPages con fragmentpageradapter e slidingtab seconda pagina all'avvio
« Risposta #3 il: 23 Agosto 2014, 14:07:19 CEST »
0
ciao, mi daresti una mano con il codice?
magari postando quello modificato... e se magari potresti commentarlo... :-)

Offline Harry551

  • Nuovo arrivato
  • *
  • Post: 7
  • Tapatalk User
  • Respect: 0
    • Mostra profilo
Re:ViewPages con fragmentpageradapter e slidingtab seconda pagina all\'avvio
« Risposta #4 il: 23 Agosto 2014, 15:45:43 CEST »
0
Nessun problema ma al momento sto andando a lavoro... domani posto tutto... unica cosa se dovessi scordarlo mandami un PM e rispondo subito. Scusami e buon fine settimana

Post unito: 24 Agosto 2014, 13:04:11 CEST
Codice (Java): [Seleziona]
//Classe per memorizzare tutte le informazioni di un singolo Tab

    class ItemPage {
        View List;
        String Title;

        public ItemPage(String title,View list){
            Title=title;
            List=list;
        }

        public View getList(){
            return List;
        }
        public String getTitle(){
            return Title;
        }


    }

        //Lista dei Tab
    List<ItemPage> mTabs;


    @Override
    public void onActivityCreated(Bundle savedInstanceState) {
        super.onActivityCreated(savedInstanceState);

        rlNoObject=(RelativeLayout)getActivity().findViewById(R.id.rlNoObject);
        llObjectPresent=(LinearLayout)getActivity().findViewById(R.id.llObjectPresent);

        inizializeSlidingTabs();
    }

    private void inizializeSlidingTabs() {
        if(ActualWorkoutProgram!=null){
            rlNoObject.setVisibility(View.GONE);
            llObjectPresent.setVisibility(View.VISIBLE);
                       
            List<Object> OBJs=ActualObj.getObjectList();
            mTabs=new ArrayList<ItemPage>();


                //Carico tutti gli elementi nella lista dei Tab. Creo le ListView Da codice e non da xml
            for(int i=0;i<OBJs.size();i++){
                Object obj=OBJs.get(i);
                ListView list=new ListView(getActivity());
                list.setAdapter(new lvElementAdapter(getActivity(),R.layout.listview_view_object_row,obj.getElementList()));
                mTabs.add(new ItemPage(obj.getTitle(),list));
            }

            viewPager=(ViewPager)getActivity().findViewById(R.id.vpViewElement);
            viewPager.setAdapter(new ViewPagerAdapter());

            slidingTab=(SlidingTabLayout)getActivity().findViewById(R.id.SlidingTabs);
            slidingTab.setViewPager(viewPager);
        }

    }

        //Utilizzo il PagerAdapter al posto del FragmentPagerAdapter
    class ViewPagerAdapter extends PagerAdapter {



        @Override
        public CharSequence getPageTitle(int position) {
            return mTabs.get(position).getTitle();
        }

        @Override
        public int getCount() {
            return mTabs.size();
        }


        @Override
        public boolean isViewFromObject(View view, Object object) {
            return object==view;
        }

        @Override
        public Object instantiateItem(ViewGroup container, int position) {
            View view=mTabs.get(position).getList();


            container.addView(view);


            return view;
        }

        @Override
        public void destroyItem(ViewGroup container, int position, Object object) {
            container.removeView((View) object);
        }


    }

Fammi sapere se i commenti sono abbastanza chiari
« Ultima modifica: 24 Agosto 2014, 13:04:11 CEST da Harry551, Reason: Merged DoublePost »