![]() |
|
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 |
«
Tema Anterior
|
Siguiente tema
»
|
Herramientas |
#1
|
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); } } } 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" /> 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> Última edición por Merche300 Día 09/02/16 a las 20:11:55 |
|
#2
|
||||
|
||||
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 |
Gracias de parte de: | ||
Respuesta |
![]() |
||||||
|
«
Tema Anterior
|
Siguiente tema
»
|
|
Hora actual: 23:41:12 (GMT +2)
HTCMania: líderes desde el 2007