Home Menu

Menu



Programación y Desarrollo para Android Subforo exclusivo para temas de programación de software para PDAs y desarrollo de aplicaciones, interfaces, etc bajo Android


 
Herramientas
  #1  
Viejo 06/02/16, 11:58:49
Avatar de Merche300
Merche300 Merche300 no está en línea
Betatester oficial
Mensajes: 625
 
Fecha de registro: dic 2008
Localización: Valencia
Mensajes: 625
Modelo de smartphone: NEXUS 5 - ONEPLUS 3
Versión de ROM: Cata
Versión de Radio: Radio Macuto
Tu operador: Pepephone
Mencionado: 0 comentarios
Tagged: 0 hilos
Tabs

A ver, tengo un Tab pero lo que son los titulos de las pestañas no me hacen el Scroll.

Código:
import android.graphics.Color;
import android.os.Bundle;
import android.support.design.widget.AppBarLayout;
import android.support.design.widget.TabLayout;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentStatePagerAdapter;
import android.support.v4.view.ViewPager;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

import java.util.ArrayList;
import java.util.List;


/**
 * Fragmento de la sección "Mi Cuenta"
 */
public class Tab_Jornadas extends Fragment {

    private AppBarLayout appBar;
    private TabLayout pestanas;
    private ViewPager viewPager;

    public Tab_Jornadas() {
    }

     @override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.fragmento_paginado, container, false);

        //Para no cerrar la aplicacion en las pestañas esto:
        setRetainInstance(true);

        //O esto
        //if (appBar != null) {
        //appBar.removeView(pestanas);
        //}

        if (savedInstanceState == null) {
            insertarTabs(container);

            // Setear adaptador al viewpager.
            viewPager = (ViewPager) view.findViewById(R.id.pager);
            poblarViewPager(viewPager);
            pestanas.setupWithViewPager(viewPager);
        }

        return view;
    }

    private void insertarTabs(ViewGroup container) {
        View padre = (View) container.getParent();
        appBar = (AppBarLayout) padre.findViewById(R.id.appbar);
        pestanas = new TabLayout(getActivity());
        pestanas.setTabTextColors(Color.parseColor("#FFFFFF"), Color.parseColor("#FFFFFF"));
        appBar.addView(pestanas);
    }

    private void poblarViewPager(ViewPager viewPager) {
        AdaptadorSecciones adapter = new AdaptadorSecciones(getFragmentManager());

        adapter.addFragment(new Frag_J_Actual(), getString(R.string.titulo_tab_J01));
        adapter.addFragment(new Frag_J_Actual(), getString(R.string.titulo_tab_J02));
        adapter.addFragment(new Frag_J_Actual(), getString(R.string.titulo_tab_J03));
        adapter.addFragment(new Frag_J_Actual(), getString(R.string.titulo_tab_J04));
        adapter.addFragment(new Frag_J_Actual(), getString(R.string.titulo_tab_J05));
        adapter.addFragment(new Frag_J_Actual(), getString(R.string.titulo_tab_J06));
        adapter.addFragment(new Frag_J_Actual(), getString(R.string.titulo_tab_J07));
        adapter.addFragment(new Frag_J_Actual(), getString(R.string.titulo_tab_J08));
        adapter.addFragment(new Frag_J_Actual(), getString(R.string.titulo_tab_J09));
        adapter.addFragment(new Frag_J_Actual(), getString(R.string.titulo_tab_J10));


        viewPager.setAdapter(adapter);
    }

     @override
    public void onDestroyView() {
        super.onDestroyView();
        appBar.removeView(pestanas);
    }

    /**
     * Un {@link FragmentStatePagerAdapter} que gestiona las secciones, fragmentos y
     * títulos de las pestañas
     */
    public class AdaptadorSecciones extends FragmentStatePagerAdapter {
        private final List<Fragment> fragmentos = new ArrayList<>();
        private final List<String> titulosFragmentos = new ArrayList<>();

        public AdaptadorSecciones(FragmentManager fm) {
            super(fm);
        }

         @override
        public Fragment getItem(int position) {
            return fragmentos.get(position);
        }

         @override
        public int getCount() {
            return fragmentos.size();
        }

        public void addFragment(Fragment fragment, String title) {
            fragmentos.add(fragment);
            titulosFragmentos.add(title);
        }

         @override
        public CharSequence getPageTitle(int position) {
            return titulosFragmentos.get(position);
        }
    }
}
fragmento_paginado.xml:

Código:
<android.support.v4.view.ViewPager
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/pager"
    android:layout_width="match_parent"
    android:layout_height="match_parent" />
contenido_principal.xml

Código:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <android.support.design.widget.AppBarLayout
        android:id="@+id/appbar"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">

        <android.support.v7.widget.Toolbar
            android:id="@+id/toolbar"
            android:layout_width="match_parent"
            android:layout_height="?attr/actionBarSize"
            android:background="?attr/colorPrimary"
            android:theme="@style/ThemeOverlay.AppCompat.Dark"
            app:popupTheme="@style/ThemeOverlay.AppCompat.Light" />
    </android.support.design.widget.AppBarLayout>

    <RelativeLayout
        android:id="@+id/contenedor_principal"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />

</LinearLayout>
¿como hago para hacer que se muevan los titulos de las pestañas?

Última edición por Merche300 Día 09/02/16 a las 20:11:55
Responder Con Cita


  #2  
Viejo 07/02/16, 14:20:41
Avatar de kriogeN
kriogeN kriogeN no está en línea
Colaborador/a
Mensajes: 4,637
Compra y venta: (1)
 
Fecha de registro: oct 2010
Localización: Murcia
Mensajes: 4,637
Modelo de smartphone: Samsung Galaxy S7 Edge SM-G935F
Versión de ROM: CM13 - CM 11
Tu operador: Vodafone
Mencionado: 60 comentarios
Tagged: 3 hilos
A veces las respuestas están muy claras en la propia documentación de Android.

Si miras la documentación del TabLayout el segundo párrafo te dice que si usas un ViewPager para rellenar los Tabs tienes que añadir un evento al PageChangeListener del ViewPager:

viewPager.addOnPageChangeListener(new TabLayoutOnPageChangeListener(tabLayout));

http://developer.android.com/intl/es...TabLayout.html

De todas formas para lo que quieres hacer yo no me complicaría tanto y lo simplificaría usando ViewPagerIndicator, que ya tiene mucho tiempo pero sigue yendo como la seda.

https://github.com/JakeWharton/ViewPagerIndicator
Responder Con Cita
Gracias de parte de:
Respuesta

Estás aquí
Regresar   HTCMania > Todo sobre Android > Programación y Desarrollo para Android


Reglas de Mensajes
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Las caritas están On
Código [IMG] está On
Código HTML está Off

Saltar a Foro



Hora actual: 23:41:12 (GMT +2)

Cookies
Powered by vBulletin™
Copyright © vBulletin Solutions, Inc. All rights reserved.
 
HTCMania: líderes desde el 2007