Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


Diseñe una HorizontalScrollView dentro de ViewPager o use fragmentos:

Necesito diseñar la siguiente pantalla, y necesito su consejo:

Introduzca aquí la descripción de la imagen

  • Mostrar el botón Atrás en la barra de acción
  • Enlace de datos de Android con un adaptador personalizado
  • RecyclerView autofit LayoutManager
  • Los bordes de desvanecimiento de los íconos Android no funcionan
  • Obtener datos de la notificación de GCM
  • Vector Drawables bandera no funciona en la Biblioteca de Soporte 24+
  • Explicación:

    El título es estático / fijo y no necesito hacer nada con él.

    Amarillo: esta es la parte interesante, tengo que diseñar un ViewPager como pantalla que tiene la capacidad de desplazarse hacia la izquierda / derecha para Max 4 pantallas.

    Rojo: En todas las pantallas necesito agregar una tabla / rejilla que se puede desplazar también si no se ajusta al tamaño de la pantalla.

    Verde: El cambio de página se puede hacer usando los botones verdes en la parte inferior de la pantalla o desplazando el ViewPager .

    La pregunta es: ¿ Se puede lograr este comportamiento utilizando un ViewPager o debo usar Fragments ? Si Fragmento es el camino a seguir, entonces, ¿cómo implementaría el cambio de página usando el gesto deslizante? Si es un ViewPager entonces cómo agregar el desplazamiento interior y cómo controlarlo usando los botones en la parte inferior?

    Cualquier ayuda será apreciada, gracias.

  • ¿Cómo hacer la intención de notificación reanudar en lugar de hacer una nueva intención?
  • ¿Cómo usar getString () en static String antes de onCreate ()?
  • Android: Problemas para crear apk con Ant Release
  • Uso de una URL web para SUGGEST_COLUMN_ICON_1 para sugerencias de búsqueda
  • ¿Cuánto dura el evento onLongPress en Android?
  • Android-spinnerwheel - Pestaña individual dibujable
  • 2 Solutions collect form web for “Diseñe una HorizontalScrollView dentro de ViewPager o use fragmentos:”

    Creo que esto debe abordarse con un ViewPager no deslizable . No hay manera de que el paginador de vista y el Fragment subyacente deban responder al gesto de deslizamiento. Los métodos para anular para deshabilitar el deslizamiento dentro de ViewPager son:

    1. onTouchEvent() – devuelve false .
    2. onInterceptTouchEvent() – devuelve false .

    Consulte esta pregunta de SO para obtener más información sobre cómo lograrlo.

    A continuación, desea utilizar Fragment s dentro de cada uno de sus portadores de buscapersonas. Así que estamos construyendo el siguiente diseño:

    Dentro de la actividad principal, se crea una instancia de FragmentPagerAdapter y se agregan las pestañas con una etiqueta:

    Cambios en la actividad

     @Override protected void onCreate(final Bundle saveInstanceState) { final FragmentPagerAdapter myTabAdapter = new MyFragmentPagerAdapter( <Your ViewPager View>, <Your activity context, this>); myTabAdapter.addTab(getActionBar().newTab(), "YOUR TAG", "Your Title"); // etc... } 

    Así que esto nos da el marco del diagrama anterior. Una actividad de alojamiento, que contiene un ViewPager y las pestañas subyacentes. A continuación se obtiene el Fragment s (que contiene las tablas) en cada una de las pestañas respectivas. Esto es manejado por la implementación de FragmentPagerAdapter :

    Adaptador de fragmento (clase interna a actividad):

     private class MyFragmentPagerAdapter extends FragmentPagerAdapter implements ActionBar.TabListener, ViewPager.OnPageChangeListener { /** * Constructs a pager adapter to back a {@link ViewPager}. * * @param pager * The {@link ViewPager} widget. * @param activityContext * The context the widget is being added under. */ public SpotMenuFragmentPagerAdapter(final ViewPager pager, final Context activityContext) { super(getFragmentManager()); pager.setAdapter(this); this.context = activityContext; } /** * Adds a tab to the hosting activity action bar. * * @param newTab * The tab to add. * @param tag * The tab tag for id purposes. * @param label * The label of the tab displayed to the user. */ public void addTab(final ActionBar.Tab newTab, final String tag, final String label) { newTab.setTag(tag); newTab.setText(label); newTab.setTabListener(this); getSupportActionBar().addTab(newTab); } /** * This is where you do the work of building the correct fragment based * on the tab currently selected. * * @see FragmentPagerAdapter#getItem(int) */ @Override public Fragment getItem(final int position) { final Tab tab = getActionBar().getTabAt(position); if ("MY TAG".equals(tab.getTag().toString()) { // instantiate the fragment (table) for "MY TAG" } else { // instantiate something else... } } /** * One fragment per tab. * * @see android.support.v4.view.PagerAdapter#getCount() */ @Override public int getCount() { return getSupportActionBar().getTabCount(); } /** * @see ViewPager.OnPageChangeListener#onPageScrollStateChanged(int) */ @Override public void onPageScrollStateChanged(final int arg0) { // No-op. } /** * @see ViewPager.OnPageChangeListener#onPageScrolled(int, float, int) */ @Override public void onPageScrolled(final int arg0, final float arg1, final int arg2) { // No-op. } /** * @see ViewPager.OnPageChangeListener#onPageSelected(int) */ @Override public void onPageSelected(final int position) { getSupportActionBar().setSelectedNavigationItem(position); } /** * @see TabListener#onTabSelected(app.ActionBar.Tab, * app.FragmentTransaction) */ @Override public void onTabSelected(final Tab tab, final FragmentTransaction ft) { viewPager.setCurrentItem(tab.getPosition()); } /** * @see TabListener#onTabUnselected(ActionBar.Tab, * app.FragmentTransaction) */ @Override public void onTabUnselected(final Tab tab, final FragmentTransaction ft) { // No-op. } /** * @see TabListener#onTabReselected(ActionBar.Tab,app.FragmentTransaction) */ @Override public void onTabReselected(final Tab tab, final FragmentTransaction ft) { // No-op. } } 

    Esperemos que en este punto tengamos una actividad que albergue un paginador de visión "no deslizable" y un mecanismo para cambiar las pestañas bajo la forma de la barra de pestañas debajo del título (o al lado dependiendo del tamaño de la pantalla). Desde este punto estoy seguro de que podría personalizar para reemplazar la barra de pestañas con algunas flechas de navegación.

    Nota: Mucho de eso fue escrito de memoria, pero espero que he transmitido la esencia de dónde iría con esto.

    Actualizar

    En respuesta a la pregunta actualizada: puede configurar la ficha como cualquier vista antigua. Ajuste el TabSpec en consecuencia. Disculpas no he usado esto yo mismo.

    Usted tiene que utilizar HorizontalScrollView que contendrá un LinearLayout y el Linear es el que contendrá sus elementos individuales

    El XML vería algo como esto

      <HorizontalScrollView android:id="@+id/horizontal_scroll_parent" android:layout_width="match_parent" android:layout_height="match_parent" android:scrollbars="horizontal" android:scrollbarStyle="outsideInset"> <LinearLayout android:id="@+id/content_scroll" android:layout_width="wrap_content" android:layout_height="match_parent" android:orientation="horizontal" android:gravity="center_vertical" /> </HorizontalScrollView> 
    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.