Impostare il TAB selezionato con un piccolo triangolo sotto

Vorrei che le mie tabs si mostrano come nell'image con un piccolo triangolo sottostante. È ansible? Se sì, allora aiutami con alcuni codici o documentazione.

immagine 1

  • Android - Proguard con httpcore e httpmime utilizzando Android Studio e Gradle
  • Perché android: layout_width = "0px" per i frammenti?
  • Passare i dati del referrer attraverso l'intento cromato al gioco google
  • Come faccio ad avviare un'attività quando il mio Widget viene cliccato?
  • Call Detection per skype in android
  • Chiudere il database in un ContentProvider
  • Il metodo OnDraw () di Layout definito non viene chiamato
  • Problema che esegue la mia chiave di firma firmata, rilascio in Eclipse
  • Quando si aggiunge Facebook SDK "appeventslogger.activateapp (this)" viene visualizzato deprecato
  • Invia i comandi APDU alla carta USIM / SIM in android
  • Dettagli del master utilizzando ContentResolver.applyBatch ()?
  • Come disinstallare la propria applicazione da / system / app?
  • 3 Solutions collect form web for “Impostare il TAB selezionato con un piccolo triangolo sotto”

    Penso che l'approccio seguente sia il più semplice. Basta impostare il disegno seguente (in realtà, è disegnabile predefinito di Android per le tabs) come background delle tabs:

    <?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <!-- Non focused states --> <item android:state_focused="false" android:state_selected="false" android:state_pressed="false" android:drawable="@drawable/tab_unselected" /> <item android:state_focused="false" android:state_selected="true" android:state_pressed="false" android:drawable="@drawable/tab_selected" /> <!-- Focused states --> <item android:state_focused="true" android:state_selected="false" android:state_pressed="false" android:drawable="@drawable/tab_focus" /> <item android:state_focused="true" android:state_selected="true" android:state_pressed="false" android:drawable="@drawable/tab_focus" /> <!-- Pressed --> <item android:state_pressed="true" android:drawable="@drawable/tab_press" /> </selector> 

    where tab_press , tab_focus e drawables tab_selected sarebbero png (preferirei 9 patch ) con freccia giù e zona trasparente vicina. tab_unselected disegnabile non avrebbe questa freccia, ma avrebbe ancora la stessa regione trasparente. L'unica cosa da fare è specificare il margine inferiore negativo per il tuo TabWidget . Il suo valore è determinato dall'altezza della freccia (non dimenticare di utilizzare unità indipendenti dalla densità ):

    schema esplicativo

    tab_0_info.xml:

     <?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:drawable="@drawable/ic_menu_yourImg_selected" android:state_selected="true" /> <item android:drawable="@drawable/ic_menu_yourImg" /> </selector> private void addTab(int resouceTabId, int drawableId, Class<? extends ActivityGroup> groupActivityClass) { Intent intent = new Intent(this, groupActivityClass); TabHost.TabSpec spec = tabHost.newTabSpec("tab" + resouceTabId); View tabIndicator = LayoutInflater.from(this).inflate( R.layout.tab_indicator, getTabWidget(), false); TextView title = (TextView) tabIndicator.findViewById(R.id.title); title.setText(resouceTabId); ImageView icon = (ImageView) tabIndicator.findViewById(R.id.icon); icon.setImageResource(drawableId); spec.setIndicator(tabIndicator); spec.setContent(intent); tabHost.addTab(spec); } //addTab(R.string.yourTabTitle, R.drawable.tab_0_info, YourGroup.class); 

    È ansible aggiungere immagini al layout con le tabs:

     <RelativeLayout android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent"> <TabWidget android:id="@android:id/tabs" android:layout_width="match_parent" android:layout_height="wrap_content" android:padding="0dip" /> <FrameLayout android:fadingEdge="none" android:id="@android:id/tabcontent" android:layout_width="fill_parent" android:layout_height="0px" android:layout_below="@android:id/tabs" android:layout_alignParentBottom="true" android:padding="0px" /> <ImageView .... android:id="@+id/down_arrow_left"/> <ImageView .... android:id="@+id/down_arrow_right"/> </RelativeLayout> 

    e aggiungere l'ascoltatore nell'attività della tua scheda:

     getTabHost().setOnTabChangedListener(new OnTabChangeListener() { public void onTabChanged(String tabId) { if (tabId.equels("left")){ findViewById(R.id.down_arrow_left).setVisibility(View.VISIBLE); findViewById(R.id.down_arrow_right).setVisibility(View.INVISIBLE); } else if (tabId.equels("right")){ findViewById(R.id.down_arrow_left).setVisibility(View.INVISIBLE); findViewById(R.id.down_arrow_right).setVisibility(View.VISIBLE); } } }); 
    L'Android è un fan Android di Google, tutto su telefoni Android, Android Wear, Android Dev e applicazioni Android Games e così via.