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

  • Ottenere contatti preferiti in Android
  • Spingere notifiche utilizzando FCM non ricevute quando l'app è ucciso android
  • Sta uscendo da un'applicazione sbiadita?
  • Layout di coordinatore con la barra degli strumenti in frammenti o attività
  • Impostazione di RelativeLayout nel codice java
  • Si è tentato di scorrere per visualizzare, ma la visualizzazione non viene visualizzata
  • Come incorporare VLC media player sul mio Android App
  • Come proteggere un'applicazione REST per applicazioni mobili?
  • ExpandableListView - l'indicazione del gruppo è allungata per adattarsi alle size del text
  • Come posso impostare la variabile di ambiente ANDROID_SDK_HOME?
  • Datepicker: come fare clic su popup di datepicker quando fa clic sul button e memorizza valore in variabile
  • Miscelazione dell'additivo senza glClear
  • 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.