1. 如何設置android界面橫屏顯示
全屏
在Activity的onCreate方法中的setContentView(myview)調用之前添加下面代碼
requestWindowFeature(Window.FEATURE_NO_TITLE);//隱藏標題
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);//設置全屏
橫屏
按照下面代碼示例修改Activity的onResume方法
@Override
protected void onResume() {
/**
* 設置為橫屏
*/
if(getRequestedOrientation()!=ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE){
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
}
super.onResume();
}
或者在配置文件中對Activity節點添加android:screenOrientation屬性(landscape是橫向,portrait是縱向)
android:launchMode="singleTask" android:screenOrientation="portrait">
要設置成豎屏設置成 SCREEN_ORIENTATION_PORTRAIT
// ----------------
常亮
view.setKeepScreenOn(true)
不加任何旋轉屏幕的處理代碼的時候,旋轉屏幕將會導致系統把當前activity關閉,重新打開。
如果只是簡單的界面調整,我們可以阻止此問題的發生,屏幕旋轉而自己調整屏幕的元素重構。
首先我們需要修改AndroidManifest.xml文件:
<activity android:name=".Magazine">
</activity>
//修改為:
<activity android:name=".Magazine"
android:configChanges="orientation|keyboard">
</activity>
這樣是讓程序能夠響應旋轉屏幕的事件。
然後重寫onConfigurationChanged方法:
@Override
public void onConfigurationChanged(Configuration newConfig) {
// TODO Auto-generated method stub
super.onConfigurationChanged(newConfig);
Log.v(" == onConfigurationChanged");
processLayout();
}
//----------------------------
在我們用Android開發過程中,會碰到Activity在切換到後台或布局從橫屏LANDSCAPE切換到PORTRAIT,會重新切換Activity會觸發一次onCreate方法。
在Android開發中這種情況視可以避免的,我們可以在androidmanifest.xml中的activit元素加入這個屬性 android:configChanges="orientation|keyboardHidden" 就能有效避免oncreat方法的重復載入,
androidmanifest.xml內容如下:紅色字體為添加部分
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.demo"
android:versionCode="1"
android:versionName="1.0">
<application android:icon="@drawable/icon" android:label="@string/app_name">
<activity android:name=".DemoGPS"
android:configChanges="orientation|keyboardHidden"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<uses-library android:name="com.google.android.maps" />
</application>
<uses-sdk android:minSdkVersion="7" />
<uses-permission android:name="android.permission.INTERNET"></uses-permission>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"></uses-permission>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"></uses-permission>
</manifest>
同時在Activity的java文件中重載onConfigurationChanged(Configuration newConfig)這個方法,這樣就不會在布局切換或窗口切換時重載等方法。代碼如下:
@Override
public void onConfigurationChanged(Configuration newConfig)
{
super.onConfigurationChanged(newConfig);
if (this.getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE)
{
//land
}
else if (this.getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT)
{
//port
}
}
//------------------------------------------------------
關於Android中Activity的橫豎屏切換問題可以通過AndroidManifest.xml文件中的Activity來配置:
android:screenOrientation=["unspecified" | "user" | "behind" |
"landscape" | "portrait" |
"sensor" | "nonsensor"]
screenOrientation 用來指定Activity的在設備上顯示的方向,每個值代表如下含義:
"unspecified" 默認值 由系統來判斷顯示方向.判定的策略是和設備相關的,所以不同的設備會有不同的顯示方向.
"landscape" 橫屏顯示(寬比高要長)
"portrait" 豎屏顯示(高比寬要長)
"user" 用戶當前首選的方向
"behind" 和該Activity下面的那個Activity的方向一致(在Activity堆棧中的)
"sensor" 有物理的感應器來決定。如果用戶旋轉設備這屏幕會橫豎屏切換。
"nosensor" 忽略物理感應器,這樣就不會隨著用戶旋轉設備而更改了 ( "unspecified"設置除外 )。
更多安卓例子請去360手機助手下載安卓學習手冊,裡面有橫豎排例子,源碼,例子隨便看。
2. Android自定義View——從零開始實現書籍翻頁效果(一)
前言 :本篇是系列博客的第三篇,這次我們要研究 書籍翻頁效果 。不知道大家平時有沒用過iReader、掌閱這些小說軟體,裡面的翻頁效果感覺十分的酷炫。有心想研究研究如何實現,於是網上找了找,發現這方面的教學資料非常少,所幸能找到 何明桂大大 的 Android 實現書籍翻頁效果----原理篇 這樣的入門博客(感謝大大 Orz),我們就以這篇博客為切入點從零實現我們自己的翻頁效果。由於這次坑比較深,預計會寫好幾期,感興趣的小夥伴可以點下關注以便及時收到更新提醒,謝謝大家的支持 ~
本篇只著重於思路和實現步驟,裡面用到的一些知識原理不會非常細地拿來講,如果有不清楚的api或方法可以在網上搜下相應的資料,肯定有大神講得非常清楚的,我這就不獻丑了。本著認真負責的精神我會把相關知識的博文鏈接也貼出來(其實就是懶不想寫那麼多哈哈),大家可以自行傳送。為了照顧第一次閱讀系列博客的小夥伴,本篇會出現一些在之前 系列博客 就講過的內容,看過的童鞋自行跳過該段即可
國際慣例,先上效果圖,本次主要實現了 基本的上下翻頁效果 與 右側最大翻頁距離的限制
在看這篇博客之前,希望大家能先了解一下書籍翻頁的實現原理,博客鏈接我已經貼出來了。通過原理講解我們知道,整個書籍翻頁效果界面分成了三個區域, A 為當前頁區域, B 為下一頁區域, C 為當前頁背面,如圖所示
書籍翻頁效果的實現就是要以我們 觸摸屏幕位置的坐標 為基礎繪制出這三個區域,形成模擬翻頁的特效。要繪制這三個區域,我們需要通過一組 特定的點 來完成,這些點的坐標需要通過兩個已知的點( 觸摸點 、 相對邊緣角 )計算得到,下圖我將各個特定點的位置和計算公式貼出來,大家對照著原理一起理解(渣畫工望體諒 ╮(╯▽╰)╭ ),其中 b 點是由 ae 和 cj 的交點, k 點是由 ah 和 cj 的交點
簡單總結一下, a 是觸摸點, f 是觸摸點相對的邊緣角, eh 我們設置為 af 的垂直平分線,則 g 是 af 的中點, ab 、 ak 、 dj 是 直線 ; 曲線cdb 是起點為 c ,控制點為 e ,終點為 b 的 二階貝塞爾曲線 ; 曲線kij 是起點為 k ,控制點為 h ,終點為 j 的 二階貝塞爾曲線 ,區域 A 、 B 、 C 就由這些點和線劃分開來。我們將這些點稱為標識點,下一步就是模擬設定 a 和 f 點的位置,將這組標識點繪制到屏幕上來驗證我們的計算公式是否正確,創建 BookPageView
實體類 MyPoint 用來存放我們的標識點坐標
界面布局:
在Activity中進行注冊
效果如圖
前文我們提到 ab 、 ak 、 dj 是 直線 ; 曲線cdb 是起點為 c ,控制點為 e ,終點為 b 的 二階貝塞爾曲線 ; 曲線kij 是起點為 k ,控制點為 h ,終點為 j 的 二階貝塞爾曲線 。通過觀察分析得知, 區域A 是由View 左上角 , 左下角 , 曲線cdb , 直線 ab 、 ak , 曲線kij , 右上角 連接而成的區域,修改 BookPageView ,利用 path 繪制處 區域A
效果如圖
區域C 理論上應該是由點 a , b , d , i , k 連接而成的閉合區域,但由於 d 和 i 是曲線上的點,我們沒辦法直接從 d 出發通過 path 繪制路徑連接 b 點( i , k 同理),也就不能只用 path 的情況下直接繪制出 區域C ,我們需要用 PorterDuffXfermode 方面的知識「曲線救國」。我們試著先將點 a , b , d , i , k 連接起來,觀察閉合區域與 區域A 之間的聯系。修改 BookPageView
效果如圖
我們將兩條曲線也畫出來對比觀察
觀察分析後可以得出結論, 區域C 是 由直線ab,bd,dj,ik,ak連接而成的區域 減去 與區域A交集部分 後剩餘的區域。於是我們設置 區域C 畫筆 Xfermode 模式為 DST_ATOP
效果如圖
最後是 區域B ,因為 區域B 處於最底層,我們直接將 區域B 畫筆 Xfermode 模式設為 DST_ATOP ,在 區域A、C 之後繪制即可,修改 BookPageView
效果如圖
翻頁可以從右下方翻自然也可以從右上方翻,我們將 f 點設在右上角,由於View上下兩部分是呈 鏡像 的,所以各標識點的位置也應該是鏡像對應的,因為 區域B和C 的繪制與 f 點沒有關系,所以我們只需要修改 區域A 的繪制邏輯,新增 getPathAFromTopRight() 方法
效果如圖
之前由於測試效果沒有對View的大小進行重新測量,在實現觸摸翻頁之前先把這個結了。重寫View的 onMeasure() 方法
我們的需求是,在上半部分翻頁時 f 點在右上角,在下半部分翻頁時 f 則在右下角,當手指離開屏幕時回到 初始狀態 ,根據需求,修改 BookPageView
在Activity中監聽View的 onTouch 狀態
注意,要設置 android:clickable 為 true ,否則無法監聽到 ACTION_MOVE 和 ACTION_UP 狀態
效果如圖
到這里我們已經實現了基本的翻頁效果,但要還原真實的書籍翻頁效果,我們還需要設置一些限制條件來完善我們的項目
對於一般的書本來說,最左側應該是釘起來的,也就是說如果我們從右側翻頁,翻動的距離是 有限制的 ,最下方翻頁形成的曲線起點( c 點)的x坐標不能小於0(上方同理),按照這個限定條件,修改我們的 BookPageView
效果如圖
至此本篇教程就告一段落了,當然還有許多功能需要繼續完善,例如橫向翻頁、翻頁動畫、陰影效果等等,這些都會在後面的教程中一一解決。如果大家看了感覺還不錯麻煩點個贊,你們的支持是我最大的動力~
3. android中的listview怎樣實現分頁顯示
給你個思路哈,布局的時候一個listview,下面添加上一頁下一頁按鈕,比如每頁顯示10頁,那麼對於數據的處理,可以通過AsyncTask或者Thread非同步獲取數據並更新listview綁定的數據集,之後通過listview的adapter自帶的notifyDataSetChanged來更新視圖,對於數據的處理,說說我能想到的兩種方式吧
每次只獲取1頁的數據(通過sql語句可控)並記住數據的編號,之後每次點擊上一頁或者下一頁都重新獲取並更新
獲取所有的數據,每次顯示一部分。
這就是我粗淺的方案了啊,希望對你有幫助哦~如果有更靠譜的方案記得要分享哈。
4. android 怎麼使布局橫向顯示
如果你要固定使界面橫向的話,可在AndroidMenifest.xml中對應用布局的Activity進行如下定義
<activity android:name="xxxx"
android:screenOrientation="landscape">
</activity>
screenOrientation的值有以下幾種:
landscape:橫向
portrait:縱向
5. android軟體開發怎樣實現分頁功能
ListView分頁:
(一)、目的:
Android 應用開發中,採用ListView組件來展示數據是很常用的功能,當一個應用要展現很多的數據時,一般情況下都不會把所有的數據一次就展示出來,而是通過 分頁的形式來展示數據,這樣會有更好的用戶體驗。因此,很多應用都是採用分批次載入的形式來獲取用戶所需的數據。例如:微博客戶端可能會在用戶滑 動至列表底端時自動載入下一頁數據,也可能在底部放置一個"查看更多"按鈕,用戶點擊後,載入下一頁數據。
(二)、核心技術點:
藉助 ListView組件的OnScrollListener監聽事件,去判斷何時該載入新數據;
往伺服器get傳遞表示頁碼的參數:page。而該page會每載入一屏數據後自動加一;
利用addAll()方法不斷往list集合末端添加新數據,使得適配器的數據源每新載入一屏數據就發生變化;
利用適配器對象的notifyDataSetChanged()方法。該方法的作用是通知適配器自己及與該數據有關的view,數據已經發生變動,要刷新自己、更新數據。
(三)、 OnScrollListener監聽事件 :
1、該監聽器中有兩個需要實現的方法:
onScrollStateChanged(AbsListView view, int scrollState):監聽屏幕的滾動狀態的變動情況
onScroll(AbsListView view, int firstVisibleItem,int visibleItemCount, int totalItemCount):監聽屏幕滾動的item的數量
2、 scrollState 回調順序如下:
第1次:scrollState = SCROLL_STATE_TOUCH_SCROLL(1):表示正在滾動。當屏幕滾動且用戶使用的觸碰或手指還在屏幕上時為1
第2次:scrollState =SCROLL_STATE_FLING(2) :表示手指做了拋的動作(手指離開屏幕前,用力滑了一下,屏幕產生慣性滑動)。
第3次:scrollState =SCROLL_STATE_IDLE(0) :表示屏幕已停止。屏幕停止滾動時為0。
3、 onScroll中參數講解:
firstVisibleItem:當前窗口中能看見的第一個列表項ID(從0開始)
visibleItemCount:當前窗口中能看見的列表項的個數(小半個也算)
totalItemCount:列表項的總數
4、思路:
當滾到最後一條,載入新數據;
適配器的數據源要進行累加:totalList.addAll(list);
數據發生變化,適配器通知:adapter.notifyDataSetChanged();【牢記】
判斷是否滾到最後一行。
(五)、核心代碼:
1、布局文件的核心代碼:
<RelativeLayoutxmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<ListView
android:id="@+id/listView_main"
android:layout_below="@+id/button_main_init"
android:layout_width="match_parent"
android:layout_height="match_parent">
</ListView>
<LinearLayout
android:id="@+id/layout_main_nextpage"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:background="#000"
android:visibility="invisible"
android:gravity="center"
android:onClick="clickButton"
android:padding="5dp">
<ProgressBar
android:id="@+id/progressBar_main"
style="?android:attr/progressBarStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<TextView
android:id="@+id/text_main_nextpage"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:textSize="18sp"
android:onClick="clickButton"
android:textColor="#fff"
android:text="點擊載入更多數據"/>
</LinearLayout>
</RelativeLayout>
2、Activity頁面核心代碼:
publicclass MainActivity extends Activity {
privateStringTAG= "MainActivity";
privateListView listView_main;
privateLinearLayout layout_main_nextpage;
private MySQLiteDatabaseHelper dbHelper = null;
// 用於分頁顯示數據的屬性
privateintpageSize= 30;// 每頁顯示的條數
privateintcurPage= 1;
privateintrowCount= 0;
privateintpageCount= 0;// 總頁數
privatebooleanisBottom=false;// 判斷是否滾動到數據最後一條
private List<Map<String, Object>> totalList = null;// 載入到適配器中的數據源
private SimpleAdapter adapter = null;
@Override
protectedvoid onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
listView_main = (ListView) findViewById(R.id.listView_main);
layout_main_nextpage = (LinearLayout) findViewById(R.id.layout_main_nextpage);
// 實例化訪問資料庫幫助類
dbHelper = new MySQLiteDatabaseHelper();
// 獲取數據表一共有多少條,從而計算共有多少頁
rowCount=dbHelper.selectCount("select id from android_basic",null);
// 計算總頁碼數
pageCount = (int) Math.ceil(rowCount / (float) pageSize);
// 如果當前頁為第一頁,則數據源集合中就是第一頁的內容
if (curPage == 1) {
totalList = getCurpageList(1);
}
adapter = new SimpleAdapter(this, totalList,
R.layout.item_listview_main, new String[] { "_id", "title" },
newint[] { R.id.text_item_listview_id,
R.id.text_item_listview_title});
listView_main.setAdapter(adapter);
// 給ListView對象設置滾動監聽器,以此來判斷是否已經滾動到最後一條,從而決定是否載入新數據
listView_main.setOnScrollListener(new OnScrollListener() {
@Override
publicvoid onScrollStateChanged(AbsListView view, int scrollState) {
if (isBottom) {
// 如果滾到最後一條數據(即:屏幕最底端),則顯示:「載入更多新數據」
if(curPage < pageCount) {
layout_main_nextpage.setVisibility(View.VISIBLE);
}
} else {
layout_main_nextpage.setVisibility(View.GONE);
}
}
@Override
publicvoid onScroll(AbsListView view, int firstVisibleItem,
int visibleItemCount, int totalItemCount) {
// Log.i(TAG, "==" + firstVisibleItem + ":::" + visibleItemCount
// + ":::" + totalItemCount);
// 判斷是否已經滾動到了最後一條,從而決定是否提示載入新數據
isBottom = (firstVisibleItem + visibleItemCount == totalItemCount);
}
});
}
publicvoid clickButton(View view) {
switch (view.getId()) {
caseR.id.layout_main_nextpage:
// Log.i(TAG, "==" + curPage + ":::" + pageCount);
// 如果不是最後一頁,則讓當前頁碼累加,讓數據源累加新數據,並通知適配器信息發生變化
if(curPage < pageCount) {
curPage++;
totalList.addAll(getCurpageList(curPage));
adapter.notifyDataSetChanged();
}
// 只要點擊了提示「載入新數據」的信息,就讓其隱藏
layout_main_nextpage.setVisibility(View.GONE);
break;
default:
break;
}
}
// 獲取每一頁的數據,返回List集合
private List<Map<String, Object>> getCurpageList(int currentPage) {
int offset = (currentPage - 1) * pageSize;
String sql = "select id _id ,title from android_basic limit ? , ?";
returndbHelper.selectData(sql, new String[] { offset + "",
pageSize + "" });
}
}
6. Android RecyclerView實現橫向滑動翻頁
最近項目需求要實現RecyclerView的分頁滑動 先上效果圖如下(視頻壓縮成的gif所以滑動切換效果有點卡頓了 效果為每頁三條數據的滑動)
7. Android listview怎麼實現滾動分頁
通常這也分為兩種方式,一種是設置一個按鈕,用戶點擊即載入。另一種是當用戶滑動到底部時自動載入。今天我就和大家分享一下這個功能的實現。
首先,寫一個xml文件,moredata.xml,該文件即定義了放在listview底部的視圖:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<Button
android:id="@+id/bt_load"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="載入更多數據" />
<ProgressBar
android:id="@+id/pg"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:visibility="gone"
/>
</LinearLayout>
可以看到是一個按鈕和一個進度條。因為只做一個演示,這里簡單處理,通過設置控制項的visibility,未載入時顯示按鈕,載入時就顯示進度條。
寫一個item.xml,大家應該很熟悉了。用來定義listview的每個item的視圖。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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/tv_title"
android:textSize="20sp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
/>
<TextView
android:textSize="12sp"
android:id="@+id/tv_content"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
/>
</LinearLayout>
main.xml就不貼了,整個主界面就一個listview。
直接先看下Activity的代碼,在裡面實現分頁效果。
package com.notice.moredate;
import java.util.ArrayList;
import java.util.HashMap;
import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.AbsListView;
import android.widget.AbsListView.OnScrollListener;
import android.widget.Button;
import android.widget.ListView;
import android.widget.ProgressBar;
import android.widget.SimpleAdapter;
import android.widget.Toast;
public class MoreDateListActivity extends Activity implements OnScrollListener {
// ListView的Adapter
private SimpleAdapter mSimpleAdapter;
private ListView lv;
private Button bt;
private ProgressBar pg;
private ArrayList<HashMap<String,String>> list;
// ListView底部View
private View moreView;
private Handler handler;
// 設置一個最大的數據條數,超過即不再載入
private int MaxDateNum;
// 最後可見條目的索引
private int lastVisibleIndex;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
MaxDateNum = 22; // 設置最大數據條數
lv = (ListView) findViewById(R.id.lv);
// 實例化底部布局
moreView = getLayoutInflater().inflate(R.layout.moredate, null);
bt = (Button) moreView.findViewById(R.id.bt_load);
pg = (ProgressBar) moreView.findViewById(R.id.pg);
handler = new Handler();
// 用map來裝載數據,初始化10條數據
list = new ArrayList<HashMap<String,String>>();
for (int i = 0; i < 10; i++) {
HashMap<String, String> map = new HashMap<String, String>();
map.put("ItemTitle", "第" + i + "行標題");
map.put("ItemText", "第" + i + "行內容");
list.add(map);
}
// 實例化SimpleAdapter
mSimpleAdapter = new SimpleAdapter(this, list, R.layout.item,
new String[] { "ItemTitle", "ItemText" },
new int[] { R.id.tv_title, R.id.tv_content });
// 加上底部View,注意要放在setAdapter方法前
lv.addFooterView(moreView);
lv.setAdapter(mSimpleAdapter);
// 綁定監聽器
lv.setOnScrollListener(this);
bt.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
pg.setVisibility(View.VISIBLE);// 將進度條可見
bt.setVisibility(View.GONE);// 按鈕不可見
handler.postDelayed(new Runnable() {
@Override
public void run() {
loadMoreDate();// 載入更多數據
bt.setVisibility(View.VISIBLE);
pg.setVisibility(View.GONE);
mSimpleAdapter.notifyDataSetChanged();// 通知listView刷新數據
}
}, 2000);
}
});
}
private void loadMoreDate() {
int count = mSimpleAdapter.getCount();
if (count + 5 < MaxDateNum) {
// 每次載入5條
for (int i = count; i < count + 5; i++) {
HashMap<String, String> map = new HashMap<String, String>();
map.put("ItemTitle", "新增第" + i + "行標題");
map.put("ItemText", "新增第" + i + "行內容");
list.add(map);
}
} else {
// 數據已經不足5條
for (int i = count; i < MaxDateNum; i++) {
HashMap<String, String> map = new HashMap<String, String>();
map.put("ItemTitle", "新增第" + i + "行標題");
map.put("ItemText", "新增第" + i + "行內容");
list.add(map);
}
}
}
@Override
public void onScroll(AbsListView view, int firstVisibleItem,
int visibleItemCount, int totalItemCount) {
// 計算最後可見條目的索引
lastVisibleIndex = firstVisibleItem + visibleItemCount - 1;
// 所有的條目已經和最大條數相等,則移除底部的View
if (totalItemCount == MaxDateNum + 1) {
lv.removeFooterView(moreView);
Toast.makeText(this, "數據全部載入完成,沒有更多數據!", Toast.LENGTH_LONG).show();
}
}
@Override
public void onScrollStateChanged(AbsListView view, int scrollState) {
// 滑到底部後自動載入,判斷listview已經停止滾動並且最後可視的條目等於adapter的條目
if (scrollState == OnScrollListener.SCROLL_STATE_IDLE
&& lastVisibleIndex == mSimpleAdapter.getCount()) {
// 當滑到底部時自動載入
// pg.setVisibility(View.VISIBLE);
// bt.setVisibility(View.GONE);
// handler.postDelayed(new Runnable() {
//
// @Override
// public void run() {
// loadMoreDate();
// bt.setVisibility(View.VISIBLE);
// pg.setVisibility(View.GONE);
// mSimpleAdapter.notifyDataSetChanged();
// }
//
// }, 2000);
}
}
}