Configuración de la TAB seleccionada con un pequeño triángulo debajo de ella
Quiero que mis pestañas para mostrar como en la imagen con pequeño triángulo por debajo de it.Is esto posible? Si es así, entonces ayúdame con algunos códigos o documentación.
- ¿Es posible cambiar el color de la pestaña seleccionada en android?
- Barra de Acción de Android - con pestañas
- Cómo interceptar eventos de contacto desde ViewPager.OnPageChangeListener
- ¿Por qué obtengo un error al intentar establecer el contenido de un tabspec en android?
- TabLayout contenido de la pestaña de actualización con una vista personalizada
- Botones en una vista personalizada cuando la vista personalizada se encuentra en una pestaña
- Cambiar entre la pestaña mediante el grupo de actividades desea mostrar la última actividad - Tab ActivityGroup
- Comparando La compatibilidad de la barra de acción de Android, el buscapersonas y las pestañas de muestra a ActionBarSherlock
- ¿Por qué resalta el eclipse en R.id.tabhost?
- Android: pestañas de las aplicaciones "Noticias y clima"
- Icono de la barra de acciones de Android png dimensions
- ¿Cómo implemento el deslizamiento entre pestañas en Android?
- TabHost definido en el diseño está dando NullPointerException durante setContent
Creo que el siguiente enfoque es el más sencillo. Sólo tienes que configurar el siguiente dibujable (en realidad, es el predeterminado de Android para las pestañas) como un fondo de las pestañas:
<?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>
Donde tab_press
, tab_focus
y tab_selected
sería png (prefiero 9-parches ) con la flecha hacia abajo y la región transparente cerca de ella. tab_unselected
no tendría esta flecha, pero todavía tendría la misma región transparente. Lo único que queda por hacer es especificar un margen inferior negativo para tu TabWidget
. Su valor está determinado por la altura de la flecha (no olvide utilizar unidades independientes de densidad ):
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);
Puede agregar imágenes al diseño con pestañas:
<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>
Y agrega el listener en la actividad de la pestaña:
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); } } });