Red de conocimiento informático - Computadora portátil - Cómo implementar paginación con desplazamiento en la vista de lista de Android

Cómo implementar paginación con desplazamiento en la vista de lista de Android

Ver ejemplos:

paquete com.test;

importar android.app.ListActivity;

importar android.os.Bundle ;

importar android.os.Handler;

importar android.view.Gravity;

importar android.view.View;

importar android.view.ViewGroup;

importar android.widget.AbsListView;

importar android.widget.BaseAdapter;

importar android.widget.ImageView;

importar android.widget.ImageView;

p>

importar android.widget.LinearLayout;

importar android.widget.ProgressBar;

importar android.widget.TextView;

importar android. widget.AbsListView.OnScrollListener;

importar android.widget.LinearLayout.LayoutParams;

la prueba de clase pública extiende ListActivity implementa OnScrollListener {

Adaptador Aleph0 = nuevo Aleph0 (

int lastItem = 0;

int mProgressStatus = 0;

controlador privado mHandler = new Handler(); ProgressBar;

protected void onCreate(Bundle saveInstanceState) {

super.onCreate(savedInstanceState);

LinearLayout searchLayout = new LinearLayout(this);

p>

searchLayout.setOrientation(LinearLayout.HORIZONTAL);

ProgressBar = new ProgressBar(this);

ProgressBar.setPadding(0, 0, 15, 0);

searchLayout.addView(progressBar, nuevo LinearLayout.LayoutParams(

LinearLayout

.LayoutParams.WRAP_CONTENT,

LinearLayout.LayoutParams.WRAP_CONTENT));

TextView textView = new TextView(this);

textView.setText("Cargando . ..");

textView.setGravity(Gravity.CENTER_VERTICAL);

searchLayout.addView(textView, new LinearLayout.LayoutParams(

LinearLayout.LayoutParams . FILL_PARENT,

LinearLayout.LayoutParams.FILL_PARENT));

searchLayout.setGravity(Gravity.CENTER);

LinearLayout loadingLayout = new LinearLayout(this); /p>

cargandoLayout.addView(searchLayout, new LinearLayout.LayoutParams(

LinearLayout.LayoutParams.WRAP_CONTENT,

LinearLayout.LayoutParams.WRAP_CONTENT));

loadingLayout.setGravity(Gravity.CENTER);

getListView().addFooterView(loadingLayout);

// Iniciar operación larga en un hilo en segundo plano

// nuevo hilo(nuevo Runnable() {

// public void run() {

// while (mProgressStatus lt; 100) {

/ /

// // Actualiza la barra de progreso

// mHandler.post(new Runnable() {

// public void run() {

// barra de progreso.setProgress(mProgressStat

nosotros);

// }

// });

// }

// }

// }).start();

RegisterForContextMenu(getListView());

setListAdapter(adapter);

getListView().setOnScrollListener( this);

}

public void onScroll(AbsListView v, int firstVisibleItem,

int visibleItemCount, int totalItemCount) {

/ /lastItem = firstVisibleItem visibleItemCount - 1;

//System.out.println("lastItem: " lastItem);

}

public void onScrollStateChanged(AbsListView); v, int estado) {

// if (lastItem == adaptor.count

// state == OnScrollListener.SCROLL_STATE_IDLE) {

// adaptador .count = 10;

// adaptador.notifyDataSetChanged();

// }

if (estado == OnScrollListener.SCROLL_STATE_IDLE) {

adaptor.count = 10;

adaptor.notifyDataSetChanged();

}

}

clase Aleph0 extiende BaseAdapter {

int recuento = 10;

public int getCount() {

retorno recuento

}

Objeto público getItem(int pos) {

return po

s;

}

public long getItemId(int pos) {

return pos; Vista pública getView(int pos, Ver v, ViewGroup p) {

Vista de TextView = new TextView(test.this);

view.setText("entry " pos);

view.setHeight(90);

devolver vista

}

}

}