Autore Topic: Aggiunta di una TAB LISTENER  (Letto 440 volte)

Offline nkufo92

  • Nuovo arrivato
  • *
  • Post: 35
  • Respect: 0
    • Mostra profilo
  • Sistema operativo:
    Windows 8.1
Aggiunta di una TAB LISTENER
« il: 24 Marzo 2015, 13:58:35 CET »
0
Buon pomeriggio,
vorrei chiedervi se esiste un modo con cui aggiungere delle tab ad una Toolbar (nel modo simile come accade per l'action bar).

In sostanza io ho un Navigation Drawer che include la toolbar e vorrei che sotto quest'ultima si visualizzassero due tab.

E' possibile tutto ciò?

Offline AnonymousDoor

  • Utente junior
  • **
  • Post: 51
  • Respect: 0
    • Mostra profilo
  • Play Store ID:
    Gheoo
Re:Aggiunta di una TAB LISTENER
« Risposta #1 il: 24 Marzo 2015, 14:23:59 CET »
0
Posta lo screen di com'è adesso

Inviato dal mio Nexus 5 utilizzando Tapatalk


Offline nkufo92

  • Nuovo arrivato
  • *
  • Post: 35
  • Respect: 0
    • Mostra profilo
  • Sistema operativo:
    Windows 8.1
Re:Aggiunta di una TAB LISTENER
« Risposta #2 il: 24 Marzo 2015, 14:31:35 CET »
0
Lascia stare la lstiview ed i bottoni, il mio obiettivo era creare due tab sotto la ToolBar rossa

Offline arlabs

  • Utente normale
  • ***
  • Post: 430
  • Respect: +49
    • Mostra profilo
  • Dispositivo Android:
    GalaxyS6, Nexus5
  • Play Store ID:
    AR Labs
  • Sistema operativo:
    Windows 10
Re:Aggiunta di una TAB LISTENER
« Risposta #3 il: 24 Marzo 2015, 16:43:43 CET »
0
Scusa, e se metti un TabHost dentro il layout del NavigationDrawer?

Offline nkufo92

  • Nuovo arrivato
  • *
  • Post: 35
  • Respect: 0
    • Mostra profilo
  • Sistema operativo:
    Windows 8.1
Re:Aggiunta di una TAB LISTENER
« Risposta #4 il: 24 Marzo 2015, 17:56:25 CET »
0
Ho cercato, ma non l'ho capito molto.. Avresti qualche link da passare?

Offline arlabs

  • Utente normale
  • ***
  • Post: 430
  • Respect: +49
    • Mostra profilo
  • Dispositivo Android:
    GalaxyS6, Nexus5
  • Play Store ID:
    AR Labs
  • Sistema operativo:
    Windows 10
Re:Aggiunta di una TAB LISTENER
« Risposta #5 il: 24 Marzo 2015, 18:10:22 CET »
0
Dicevo di mettere un TabWidget dentro il NavigationDrawer.

Siccome il TabWidget funziona solo con il TabHost (che fa più di quello che a volte uno ha necessità di fare) ci sono 2 modi per farlo:
 - Creare sia TabHost che TabWidget, e dare nessuna funzionalità al TabHost (con un ContentFactory che non fa nulla)
 - usare il Single-TabWidget (https://github.com/muratonnet/android-SingleTabWidget), ha solo 2 piccole modifiche che rende il TabWidget indipendente dal TabHost (in particolare TabWidget chiama una callback privata, che non è possibile settare altrimenti)

Se lo metti nel layout del NavigationDrawer, sotto alla Toolbar, ovviamente ti appare sotto di essa.
Siccome però la Toolbar è un ViewGroup, puoi metterla anche dentro di essa.
Ho appena fatto una veloce prova e funziona.

Per la prima delle 2 soluzioni io ho fatto così:
layout:
Codice (XML): [Seleziona]
    <TabHost
       android:layout_width="fill_parent"
       android:layout_height="fill_parent"
       android:id="@android:id/tabhost"
       android:layout_alignParentTop="true"
       android:layout_centerHorizontal="true">

        <LinearLayout
           android:layout_width="fill_parent"
           android:layout_height="fill_parent"
           android:orientation="vertical">

            <TabWidget
               android:id="@android:id/tabs"
               android:layout_width="fill_parent"
               android:layout_height="wrap_content"
               android:background="@drawable/tabwidget_background">
            </TabWidget>

            <FrameLayout
               android:id="@android:id/tabcontent"
               android:layout_width="0dp"
               android:layout_height="0dp"
               android:layout_weight="0" />

        </LinearLayout>
    </TabHost>

codice:
Codice (Java): [Seleziona]
        mTabHost = (TabHost)findViewById(android.R.id.tabhost);
        mTabHost.setup();

        TabHost.TabContentFactory contentFactory = new TabHost.TabContentFactory()
        {
            @Override
            public View createTabContent(String tag)
            {
                return findViewById( android.R.id.tabcontent );
            }
        };

        TabHost.TabSpec tab1 = mTabHost.newTabSpec(TAB_UNO);
        TabHost.TabSpec tab2 = mTabHost.newTabSpec(TAB_DUE);
        TabHost.TabSpec tab3 = mTabHost.newTabSpec(TAB_TRE);

        // Set the Tab name and Activity
        // that will be opened when particular Tab will be selected
        tab1.setIndicator( "UNO", getResources().getDrawable(R.drawable.image1) );
        tab1.setContent(contentFactory);
        tab2.setIndicator( "DUE", getResources().getDrawable(R.drawable.image2) );
        tab2.setContent(contentFactory);
        tab3.setIndicator( "TRE", getResources().getDrawable(R.drawable.image3) );
        tab3.setContent( contentFactory );

        // Add the tabs  to the TabHost to display.
        mTabHost.addTab(tab1);
        mTabHost.addTab(tab2);
        mTabHost.addTab(tab3);

        mTabHost.setOnTabChangedListener(new TabHost.OnTabChangeListener()
        {
            @Override
            public void onTabChanged(String tabId)
            {
            }
        });

Ciao.