Last active
April 27, 2016 19:16
-
-
Save pedrojoya/5144426 to your computer and use it in GitHub Desktop.
PR046-ViewPager
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?xml version="1.0" encoding="utf-8"?> | |
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" | |
android:layout_width="fill_parent" | |
android:layout_height="fill_parent" | |
android:orientation="vertical"> | |
<android.support.v4.view.ViewPager | |
android:id="@+id/vpPaginas" | |
android:layout_width="match_parent" | |
android:layout_height="match_parent"/> | |
</RelativeLayout> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package es.iessaladillo.pedrojoya.pr045; | |
import android.os.Bundle; | |
import android.os.Parcelable; | |
import android.support.v4.view.PagerAdapter; | |
import android.support.v4.view.ViewPager; | |
import android.support.v7.app.AppCompatActivity; | |
import android.view.LayoutInflater; | |
import android.view.View; | |
import android.view.ViewGroup; | |
import android.widget.TextView; | |
public class MainActivity extends AppCompatActivity { | |
// Constantes. | |
private static final int NUM_PAGINAS = 5; | |
private static final int DEFAULT_PAGE = 2; | |
@Override | |
public void onCreate(Bundle savedInstanceState) { | |
super.onCreate(savedInstanceState); | |
setContentView(R.layout.activity_main); | |
// Se obtienen e inicializan las vistas. | |
initVistas(); | |
} | |
// Obtiene e inicializa las vistas. | |
private void initVistas() { | |
PaginasAdapter adaptador = new PaginasAdapter(); | |
ViewPager vpPaginas = (ViewPager) findViewById(R.id.vpPaginas); | |
if (vpPaginas != null) { | |
vpPaginas.setAdapter(adaptador); | |
// Establece la página inicial a mostrar. | |
vpPaginas.setCurrentItem(DEFAULT_PAGE); | |
} | |
} | |
// Adaptador de páginas para el ViewPager. | |
private class PaginasAdapter extends PagerAdapter { | |
// Retorna el número de páginas. | |
@Override | |
public int getCount() { | |
return NUM_PAGINAS; | |
} | |
// Retorna la vista correspondiente a la página que se debe mostar. | |
// Recibe la ViewPager y la posición de la página a mostrar. | |
@Override | |
public Object instantiateItem(ViewGroup collection, int position) { | |
// Obtiene la página. | |
View vistaPagina = LayoutInflater.from(MainActivity.this).inflate( | |
R.layout.pagina, collection, false); | |
// Obtiene el TextView y escribe el número de página. | |
TextView lblPagina = (TextView) vistaPagina | |
.findViewById(R.id.lblPagina); | |
lblPagina.setText(String.valueOf(position)); | |
// Agrega la página al ViewPager. | |
collection.addView(vistaPagina, 0); | |
// Retorna la vista correspondiente a la página. | |
return vistaPagina; | |
} | |
// Quita del ViewPager la vista correspondiente a la página. | |
// Recibe el ViewPager, la posición de la página y la vista-página. | |
@Override | |
public void destroyItem(ViewGroup collection, int position, Object view) { | |
collection.removeView((View) view); | |
} | |
// Retorna si una vista-página corresponde al objeto retornado por | |
// instantiateItem(). | |
// Recibe la vista-página y el objeto. | |
@Override | |
public boolean isViewFromObject(View view, Object object) { | |
return (view == object); | |
} | |
// Se llama cuando se inicia un cambio de página. | |
@Override | |
public void startUpdate(ViewGroup arg0) { | |
} | |
// Se llama cuando el cambio de página se ha completado. | |
@Override | |
public void finishUpdate(ViewGroup arg0) { | |
} | |
// Salva el estado. | |
@Override | |
public Parcelable saveState() { | |
return null; | |
} | |
// Restaura el estado. | |
@Override | |
public void restoreState(Parcelable arg0, ClassLoader arg1) { | |
} | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?xml version="1.0" encoding="utf-8"?> | |
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" | |
android:layout_width="match_parent" | |
android:layout_height="match_parent" | |
android:orientation="vertical"> | |
<TextView | |
android:id="@+id/lblPagina" | |
android:layout_width="wrap_content" | |
android:layout_height="wrap_content" | |
android:layout_centerInParent="true" | |
android:textIsSelectable="true" | |
android:textSize="@dimen/activity_text_size"/> | |
</RelativeLayout> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment