国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Android > 正文

Android基于ListView實現類似Market分頁加載效果示例

2019-12-12 04:52:29
字體:
來源:轉載
供稿:網友

本文實例講述了Android基于ListView實現類似Market分頁加載效果。分享給大家供大家參考,具體如下:

最近幾天研究ListView實現分頁加載和滾動加載,發現可以用listView的OnScroll方法來實現,直接上代碼

ListViewScroll.java

package zy.lucifer.ListViewScroll;import android.app.Activity;import android.os.Bundle;import android.util.Log;import android.view.Gravity;import android.view.View;import android.view.ViewGroup;import android.widget.AbsListView;import android.widget.BaseAdapter;import android.widget.LinearLayout;import android.widget.ListView;import android.widget.ProgressBar;import android.widget.TextView;import android.widget.Toast;import android.widget.AbsListView.OnScrollListener;import android.widget.LinearLayout.LayoutParams;public class ListViewScroll extends Activity {  /** Called when the activity is first created. */  private LayoutParams mLayoutParams = new LinearLayout.LayoutParams(      LinearLayout.LayoutParams.WRAP_CONTENT,      LinearLayout.LayoutParams.WRAP_CONTENT);  /**   * 設置布局顯示目標最大化屬性   */  private LayoutParams FFlayoutParams = new LinearLayout.LayoutParams(      LinearLayout.LayoutParams.FILL_PARENT,      LinearLayout.LayoutParams.FILL_PARENT);  ListView listView ;  private int lastItem = 0;  LinearLayout loadingLayout;  private listViewAdapter adapter;  @Override  public void onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    setContentView(R.layout.main);    listView = (ListView) findViewById(R.id.myList);    Log.i("test", "onCreate(Bundle savedInstanceState)>>>>>>>>>>>>>>>");    // 線性布局    LinearLayout layout = new LinearLayout(this);    // 設置布局 水平方向    layout.setOrientation(LinearLayout.HORIZONTAL);    // 進度條    ProgressBar progressBar = new ProgressBar(this);    // 進度條顯示位置    progressBar.setPadding(0, 0, 15, 0);    // 把進度條加入到layout中    layout.addView(progressBar, mLayoutParams);    // 文本內容    TextView textView = new TextView(this);    textView.setText("加載中...");    textView.setGravity(Gravity.CENTER_VERTICAL);    // 把文本加入到layout中    layout.addView(textView, FFlayoutParams);    // 設置layout的重力方向,即對齊方式是    layout.setGravity(Gravity.CENTER);    // 設置ListView的頁腳layout    loadingLayout = new LinearLayout(this);    loadingLayout.addView(layout, mLayoutParams);    loadingLayout.setGravity(Gravity.CENTER);    listView.addFooterView(loadingLayout);    adapter = new listViewAdapter();    listView.setAdapter(adapter);    listView.setOnScrollListener(new OnScrollListener() {      @Override      public void onScroll(AbsListView view, int firstVisibleItem,          int visibleItemCount, int totalItemCount) {        // TODO Auto-generated method stub        Log.i("test" , "Scroll>>>first: " + firstVisibleItem + ", visible: " + visibleItemCount + ", total: " + totalItemCount);        lastItem = firstVisibleItem + visibleItemCount - 1;        Log.i("test" , "Scroll>>>lastItem:" + lastItem);        //顯示50條ListItem,即0-49,因為onScroll是在“滑動”執行過之后才觸發,所以用adapter.count<=41作條件        int scrolllength=101;        if (adapter.count<=scrolllength) {          if (firstVisibleItem+visibleItemCount==totalItemCount) {            adapter.count += 10;            adapter.notifyDataSetChanged();            listView.setSelection(lastItem);            int currentPage=adapter.count/10;            Toast.makeText(getApplicationContext(), "第"+currentPage+"頁", Toast.LENGTH_LONG).show();          }        }        else {           listView.removeFooterView(loadingLayout);        }      }      @Override      public void onScrollStateChanged(AbsListView view, int scrollState) {        // TODO Auto-generated method stub      }    });  }  class listViewAdapter extends BaseAdapter {    int count = 10; /* starting amount */    public int getCount() {      return count;    }    public Object getItem(int pos) {      return pos;    }    public long getItemId(int pos) {      return pos;    }    public View getView(int pos, View v, ViewGroup p) {      Log.i("test", "getView>>>pos:" + pos);      TextView view;      if (v == null) {        view = new TextView(ListViewScroll.this);      } else {        view = (TextView) v;      }      view.setText("ListItem " + pos);      view.setTextSize(20f);      view.setGravity(Gravity.CENTER);      view.setHeight(60);      return view;    }  }}

main.xml

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  android:orientation="vertical"  android:layout_width="fill_parent"  android:layout_height="fill_parent"  ><ListView android:cacheColorHint="#00000000" android:id="@+id/myList"android:layout_width="fill_parent" android:layout_height="fill_parent"    >  </ListView></LinearLayout>

更多關于Android相關內容感興趣的讀者可查看本站專題:《Android視圖View技巧總結》、《Android布局layout技巧總結》、《Android圖形與圖像處理技巧總結》、《Android開發入門與進階教程》、《Android調試技巧與常見問題解決方法匯總》、《Android多媒體操作技巧匯總(音頻,視頻,錄音等)》、《Android基本組件用法總結》及《Android控件用法總結

希望本文所述對大家Android程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 遵义市| 旺苍县| 石柱| 丹凤县| 龙游县| 洱源县| 宁化县| 南华县| 安义县| 灵丘县| 镇安县| 泽库县| 榆社县| 南汇区| 桦南县| 和龙市| 千阳县| 镇原县| 建德市| 南部县| 抚顺市| 彰化县| 五家渠市| 河东区| 遂宁市| 大冶市| 东明县| 镇江市| 聂拉木县| 五原县| 瑞金市| 裕民县| 乌兰县| 冷水江市| 广州市| 台东县| 定远县| 松潘县| 桦南县| 兴业县| 司法|