Android 滑動效果代碼分享

來源:互聯網
上載者:User

 

ORIETech -  Mobile Application Development 

 

package com.ScrollListView;
import android.app.ListActivity;
import android.os.Bundle;
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.ProgressBar;
import android.widget.TextView;
import android.widget.AbsListView.OnScrollListener;
publicclass EndLessActivity extends ListActivity implements OnScrollListener {

Aleph0 adapter =new Aleph0();
int mProgressStatus =0;
ProgressBar progressBar;
protectedvoid onCreate(Bundle
savedInstanceState) {
super.onCreate(savedInstanceState);
LinearLayout searchLayout =new LinearLayout(this);
searchLayout.setOrientation(LinearLayout.HORIZONTAL);
progressBar =new ProgressBar(this);
progressBar.setPadding(0, 0, 15, 0);
searchLayout.addView(progressBar,new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.WRAP_CONTENT,
LinearLayout.LayoutParams.WRAP_CONTENT
));
TextView textView =new TextView(this);
textView.setText("載入中...");
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);
loadingLayout.addView(searchLayout,new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.WRAP_CONTENT,
LinearLayout.LayoutParams.WRAP_CONTENT
));
loadingLayout.setGravity(Gravity.CENTER);
getListView().addFooterView(loadingLayout);
setListAdapter(adapter);
getListView().setOnScrollListener(this);
}

publicvoid onScroll(AbsListView
view,
int firstVisible, int visibleCount, int totalCount) {

boolean loadMore =/* maybe
add a padding */ 
firstVisible + visibleCount >= totalCount;

if(loadMore) {
adapter.count += visibleCount; // or
any other amount
  adapter.notifyDataSetChanged();
}
}

publicvoid onScrollStateChanged(AbsListView
v, int s) { }

class Aleph0 extends BaseAdapter {
int count =40; /* starting amount */ 

publicint getCount() { return count; }
public Object getItem(int pos) { return pos; }
publiclong getItemId(int pos) { return pos; }

public View getView(int pos, View v, ViewGroup p) {
TextView view =new TextView(EndLessActivity.this);
view.setText("entry "+ pos);
return view;
}
}
}

listview下部是按鈕控制:

package com.ScrollListView;
import android.app.ListActivity;
import android.os.Bundle;
import android.view.Gravity;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AbsListView;
import android.widget.BaseAdapter;
import android.widget.Button;
import android.widget.LinearLayout;
import android.widget.ProgressBar;
import android.widget.TextView;
import android.widget.AbsListView.OnScrollListener;
publicclass EndLessActivity extends ListActivity {

Aleph0 adapter =new Aleph0();
int mProgressStatus =0;

protectedvoid onCreate(Bundle
savedInstanceState) {
super.onCreate(savedInstanceState);
LinearLayout searchLayout =new LinearLayout(this);
searchLayout.setOrientation(LinearLayout.HORIZONTAL);

Button textView =new Button(this);
textView.setText("載入中...");
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);
loadingLayout.addView(searchLayout,new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.WRAP_CONTENT,
LinearLayout.LayoutParams.WRAP_CONTENT
));
loadingLayout.setGravity(Gravity.CENTER);
getListView().addFooterView(loadingLayout);
textView.setOnClickListener(new Button.OnClickListener()
{ @Override
publicvoid onClick(View v)
{
adapter.count +=10;
adapter.notifyDataSetChanged();
}
});

setListAdapter(adapter);
//getListView().setOnScrollListener(this);
  }

/*public void onScroll(AbsListView view,
int firstVisible, int visibleCount, int totalCount) {

boolean loadMore =
firstVisible + visibleCount >= totalCount;

if(loadMore) {
adapter.count += visibleCount;
adapter.notifyDataSetChanged();
}
} */

publicvoid onScrollStateChanged(AbsListView
v, int s) { }

class Aleph0 extends BaseAdapter {
int count =40; /* starting amount */ 

publicint getCount() { return count; }
public Object getItem(int pos) { return pos; }
publiclong getItemId(int pos) { return pos; }

public View getView(int pos, View v, ViewGroup p) {
TextView view =new TextView(EndLessActivity.this);
view.setText("entry "+ pos);
return view;
}
}
}

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.