ViewPager

Aquí les dejo el código completo para hacer el ViewPager mostrado en el vídeo de hoy:
--En la actividad on create, ponen un bloque: add source directly, y pegan este código:
// Este código fue traducido por Sketchware Latino, obtenido por Sanjeev Kumar, y migrado con Sketch Migrator X (hecho por Developer Partha)

// Crea un ViewPager, ajusta el adaptador para ello, y ajusta el ítem a su posición 0 (pag1.xml).
androidx.viewpager.widget.ViewPager viewPager1 = new androidx.viewpager.widget.ViewPager(this);
viewPager1.setAdapter(new MyPagerAdapter());
viewPager1.setCurrentItem(0);

// Define un nuevo TabLayout, ajusta lo con el ViewPager, y agregalo al AppBarLayout que se refiere al ToolBar. El AppBarLayout va a contener el ToolBar y el TabLayout
com.google.android.material.tabs.TabLayout tabLayout = new com.google.android.material.tabs.TabLayout(this);
tabLayout.setupWithViewPager(viewPager1);
((com.google.android.material.appbar.AppBarLayout) _toolbar.getParent()).addView(tabLayout);
// Agrega el ViewPager a un linear de tu página principal (main.xml)
linear1.addView(viewPager1);

--Crean un bloque especial, o "more block", agregan un bloque: add source directly, y pegan el siguiente código:
}
// Crea una lista de páginas
int[] pageId = {
R.layout.pag1, R.layout.pag3, R.layout.pag5
};

// Define el adaptador para el ViewPager
private class MyPagerAdapter extends androidx.viewpager.widget.PagerAdapter {

// Obtén el número total de paginas
public int getCount() {
return pageId.length;
}

// Obtén el título de las páginas
@Override
public CharSequence getPageTitle(int position) {
String[] pageTitle = {"Tab-1", "Tab-2", "Tab-3"};
return pageTitle[position];
}

// Obtén las Vistas personalizadas para que se muestren en cada posición
public Object instantiateItem(View collection, int position) {
// Obtén las vistas por sus IDs
View view = getLayoutInflater().inflate(pageId[position], null);
((androidx.viewpager.widget.ViewPager)collection).addView(view, 0);

if (position == 0) {
// Para la página en la posición 0 (pag1.xml), define un Switch y ajusta un evento para detectar si el Switch cambió
final Switch tab1switch1 = view.findViewById(R.id.switch1);

tab1switch1.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton _param1, boolean _param2){
final boolean _isChecked = _param2;
if (_isChecked){
tab1switch1.setText("Encendido");
} else {
tab1switch1.setText("Apagado");
}
}
});
}
else if (position == 1) {
// Pará la página en la posición 1 (pag3.xml), define una Vista de texto (TextView) y un evento para detectar si se tocó
final TextView tab2textview1 = view.findViewById(R.id.textview1);

tab2textview1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick (View v){
showMessage("Vista de texto tocada");
}
});
}
else if (position == 2) {
// Para la página en la posición 2 (pag5.xml), define un botón y un evento para detectar si se tocó
final Button tab3button1 = view.findViewById(R.id.button1);

tab3button1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick (View v){
showMessage("Tocaste mi boton.");
}
});
}
// Regresa la Vista correspondiente a la posición selecccionada
return view;
}

@Override
public void destroyItem(View arg0, int arg1, Object arg2) { ((androidx.viewpager.widget.ViewPager) arg0).removeView((View) arg2);
}

@Override
public boolean isViewFromObject(View arg0, Object arg1) {
return arg0 == ((View) arg1);
}

--(Esto ya no es parte del código) Aquí les dejo el link del vídeo: https://youtu.be/U1V9nz5-KkE

Comentarios

Entradas populares de este blog

Cambio de permisos de usuario

Seekbar personalizado

Multiples imagenes en Firebase Storage