Quiero que mis pestañas se muestren como en la imagen con un pequeño triángulo debajo. ¿Es posible? Si es así, ayúdenme con algunos códigos o documentación.Configuración de TAB seleccionado con un pequeño triángulo debajo de él
5
A
Respuesta
11
creo, el siguiente método es el más sencillo . Sólo tiene que configurar el siguiente estirable (en realidad, es estirable por defecto de Android para pestañas) como fondo de las fichas:
<?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
dibujables serían png de (yo preferiría 9-patches) con flecha abajo y región transparente cerca de él. tab_unselected
dibujable no tendría esta flecha, pero aún tendría la misma región transparente. Lo único que queda por hacer es especificar el margen inferior negativo para su TabWidget
. Su valor se determina por la altura de la flecha (no se olvide de usar density independent unidades):
-2
Puede añadir imágenes a la disposición 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 añadir oyente en su actividad 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);
}
}
});
0
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);
Cuestiones relacionadas
- 1. ApplicationInstance.CompleteRequest no detiene la ejecución del código debajo de él?
- 2. Creación de un triángulo con los bucles
- 3. Interpolación de un triángulo
- 4. Transformar un triángulo en otro triángulo
- 5. Cómo dibujar un triángulo programáticamente
- 6. ¿Cómo evito que iOS convierta un pequeño carácter de triángulo rectángulo apuntando en un símbolo triangular rectangular?
- 7. Hacer con triángulo inferior
- 8. Configuración de la completación de RefTeX Tab en emacs
- 9. Configuración del valor seleccionado de un elemento Seleccionar en manubrios
- 10. Forma de triángulo con imagen de fondo
- 11. EditText tab order
- 12. ¿Cómo pasar un evento táctil desde una UIView a la UIView (s) debajo de él?
- 13. EditText con lista de sugerencias debajo de
- 14. ¿Cómo alterar un flotador por su incremento más pequeño (o cerca de él)?
- 15. Triángulo LWJGL básico con OpenGL
- 16. Triángulo Triángulo Intersección en 3d-Space
- 17. 3px de altura adicional en un div con una imagen dentro de él
- 18. RedirectToAction() con tab-id
- 19. Tamaño del elemento de configuración del navegador Android demasiado pequeño
- 20. Sustitución de un vínculo con él es texto con jQuery
- 21. triángulo de C++, Pascal
- 22. Configuración del elemento seleccionado en un ListBox sin bucle
- 23. sprintf_s con un búfer demasiado pequeño
- 24. ExtJs TextField con un pequeño botón
- 25. En Unix, ¿cómo se elimina todo en el directorio actual y debajo de él?
- 26. centro hallazgo de triángulo 2D
- 27. Reemplazando/con TAB utilizando sed
- 28. Unix Ordenar con Tab delimitador
- 29. Haz un triángulo CSS con fondo transparente en un div con imagen blanca BG?
- 30. Proyección 3D inversa (triángulo)
Eso ayudó un margen Abot poco bit.just decribe –
Ver la imagen que he agregado. Debería aclarar mi sugerencia. –
realmente una gran respuesta. – Akram