Autore Topic: come visualizzare delle immagini sui tab  (Letto 645 volte)

Offline andream1977

  • Utente normale
  • ***
  • Post: 260
  • Respect: +7
    • Mostra profilo
  • Dispositivo Android:
    Nexus S
  • Sistema operativo:
    windows xp
come visualizzare delle immagini sui tab
« il: 13 Dicembre 2013, 00:48:30 CET »
0
Ho realizzato un layout a tab utilizzando i fragment.
Voglio mettere un'immagine personalizzata per ogni pulsante tab
Per fare questo ho creato un layout personalizzato (composto da un solo ImageView)
Ho scritto questo codice:
Codice (Java): [Seleziona]
public class MainActivity extends FragmentActivity
        @Override
        protected void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
                Intent intent = null;
                setContentView(R.layout.main_layout);
                ViewGroup parent = (ViewGroup) findViewById(R.id.vertical_container);
                Resources res = getResources();
                mTabHost = (FragmentTabHost) findViewById(android.R.id.tabhost);
                mTabHost.setup(this, getSupportFragmentManager(), R.id.realtabcontent);

                View view = LayoutInflater.from(mTabHost.getContext()).inflate(
                                R.layout.tabs_layout, null);
                intent = new Intent(this, FindInsertionsFragment.class);
                TabSpec spec = mTabHost.newTabSpec("tab113");
                View tabIndicator = LayoutInflater.from(this).inflate(R.layout.tabs_layout, parent, false);
               
            ImageView icon = (ImageView) tabIndicator.findViewById(R.id.tab_image);
            icon.setImageDrawable(res.getDrawable(R.drawable.tab_find_insertions_state));
            icon.setScaleType(ImageView.ScaleType.FIT_CENTER);

            spec.setContent(intent);
            spec.setIndicator(tabIndicator);
            mTabHost.addTab(spec);
}

quando seguo la mia app, schianta con questo messaggio di errore:
Did you forget to call 'public void setup LocalActivityManager activityGroup'?

Il problema è questa riga di codice:
View tabIndicator = LayoutInflater.from(this).inflate(R.layout.tabs_layout, parent, false);
'paret' non gli piace, ma non riesco a capire che ViewGroup devo metterci

qualcuno mi sa aiutare?

Offline andream1977

  • Utente normale
  • ***
  • Post: 260
  • Respect: +7
    • Mostra profilo
  • Dispositivo Android:
    Nexus S
  • Sistema operativo:
    windows xp
Re:come visualizzare delle immagini sui tab
« Risposta #1 il: 14 Dicembre 2013, 11:15:14 CET »
0
ho trovato questa soluzione, il codice sopra lo butto tutto via ed uso questo:

Codice (Java): [Seleziona]
                mTabHost.addTab(
                                mTabHost.newTabSpec("find").setIndicator("",
                                                null),
                                FindInsertionsFragment.class, b);
                mTabHost.getTabWidget().getChildAt(0).setBackgroundResource(R.drawablefind_insertions_state);

dove find_insertions_state è un xml che specifica un'immagine differente a seconda dello stato in cui si trova il pulsante

Codice (XML): [Seleziona]
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <!-- When selected -->
    <item android:drawable="@drawable/find_pressed"
         android:state_selected="true" />
    <!-- When not selected -->
    <item android:drawable="@drawable/find_normal" />
</selector>
« Ultima modifica: 14 Dicembre 2013, 12:08:03 CET da andream1977 »