Diseño de Android con barra de acciones y pestañas

Soy nuevo en Android y necesito su consejo. Me gustaría tener una actividad con barra de acción, necesito también pestañas (pero no pestañas en barra de acciones) y desplegable en la barra de acción para navegar. Cuando hago clic en, por ejemplo, la primera pestaña, la lista de navegación en la barra de acción debe estar llena de datos, cuando la pestaña de segundos, la lista de navegación debe llenarse con otros datos y etc., los elementos de acción también deben cambiarse cuando se cambia la pestaña. Cuando selecciono algún elemento de la lista de navegación en la barra de acción, la vista debe actualizarse. No estoy seguro de cómo hacerlo.

Utilizo ActionBarSherlock para la barra de acción, y ya tengo tabs usando TabHost y TabWidget con fragmentos, cuando hago clic en la pestaña, entonces el fragmento se cambia, pero esto no es exactamente lo que quiero, y no tengo ni idea de qué hacer a continuación. ¿Usted me podría ayudar?

Aquí está una pantalla:

Introduzca aquí la descripción de la imagen

Cuando hago clic en la pestaña 1, la lista de navegación en la barra de acción debe ser Tab1 List1, Tab1 List2 etc. y se debe mostrar la primera vez la vista predeterminada de la lista (por ejemplo, primera Tab1 List1) o la última seleccionada por el usuario desde la vista Lista de navegación. Cuando hago clic en la pestaña 2, la lista debe ser Tab2 List1, Tab2 List2 etc. y debe mostrarse por ejemplo Tab2 List2 view. Etc Así que cada ficha ajustar la barra de acción.

Tiene dos opciones:

  1. Utilice la navegación de lista en la barra de acción y coloque un TabWidget en la parte superior de su vista de contenido.
  2. Utilice la pestaña de pestañas en la barra de acciones y configure una vista personalizada con un Spinner

Tenga cuidado de no sobrecargar a sus usuarios. Normalmente dos tipos de navegación pueden ser confusos.

Para los elementos de acción, si está utilizando fragmentos para sus diferentes "pantallas", puede registrarse para suministrar elementos de acción con setHasOptionsMenu(true); Y definir sus acciones por sobreescribir onCreateOptionsMenu(Menu menu, MenuInflater inflater) . Por lo tanto, una buena regla de diseño, si no se puede explicar simplemente, probablemente está haciendo algo mal y debe cambiar el diseño.

También puede ser un uso indebido del diseño de Android divergir demasiado lejos del patrón de barras de acción, lo que significa que tienes algo que se parece a un ActionBar con la navegación, pero realmente tienes algo más que te has inventado. Si esto es necesario, entonces no deberías hacer algo que parezca una barra de acción con navegación, porque los usuarios esperarán cierto comportamiento y obtendrán una respuesta diferente (confusión).

Finalmente, con lo que usted describe, parece que las pestañas manejan la navegación de lista, sin embargo, la navegación de lista tiene precedencia visual (está arriba y esencialmente contiene las pestañas). Por lo tanto, si las pestañas son consistentes a través de selecciones de la lista de navegación, pero la lista cambia en función de las selecciones de la pestaña de la pestaña, se representa más clara al tener las pestañas con precedencia visual sobre la lista de navegación. Así que, si mantienes la navegación, revocaré su orden. Tal vez trate de navegación de lista con un buscapersonas en lugar de la lista de navegación. Jake tiene una gran biblioteca para el paginador de la visión también http://viewpagerindicator.com/

Alcanzé esto Setting the tab navigation in action bar y Setting Spinner in Menu for navigation list . Yo explicaría la segunda parte, ya que la primera es trivial.

Definir Spinner en action_bar.xml :

 <item android:id="@+id/menu_test_spinner" android:actionViewClass="android.widget.Spinner" android:showAsAction="always"/> 

Configurar y enlazar datos en Spinner en la actividad:

 @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.action_bar, menu); MenuItem testSpinner = menu.findItem( R.id.menu_test_spinner ); setupTestSpinner(testSpinner); return true; } private void setupTestSpinner(MenuItem item) { View view = item.getActionView(); if (view instanceof Spinner) { Spinner spinner = (Spinner) view; spinner.setAdapter(ArrayAdapter.createFromResource(this, R.array.test, android.R.layout.simple_spinner_dropdown_item)); spinner.setOnItemSelectedListener(new OnItemSelectedListener() { @Override public void onItemSelected(AdapterView<?> parentView, View selectedItemView, int position, long id) { //Do something on item selection } @Override public void onNothingSelected(AdapterView<?> arg0) { } }); } } 

Ahora, anule el método que respondería a los cambios de tabulación y cambie los elementos de la lista de navegación en Spinner.

  • ¿Por qué aparece el teclado después de TabBar?
  • Fragmento del buscapersonas que se oculta detrás de Tab Bar
  • Android TabLayout ViewPager no inflar el fragmento de la pestaña en backstack
  • ¿Cómo mantener el estado del fragmento sin backstack en la pestaña?
  • Ficha de Android como pie de página
  • IllegalStateException: Fragmento ya agregado en el fragmento tabhost
  • Cambiar el relleno de TextView en TabLayout
  • Android: conflicto de ID cuando se crean 3 pestañas o más
  • No se pueden intercambiar fragmentos correctamente en las pestañas de la barra de acciones
  • Android: cómo crear una aplicación de pestañas compleja con vistas
  • Android: Barra de Acción
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.