導航:首頁 > 操作系統 > androidviewpager刷新

androidviewpager刷新

發布時間:2025-01-21 18:04:39

android使用ViewPager2實現頁面滑動切換

在設計應用界面時,經常需要實現頁面間的滑動切換功能。Android開發中,ViewPager2作為升級版的解決方案,提供了簡潔高效的方式實現這一需求。本文將詳細介紹如何利用ViewPager2、FragmentStateAdapter與Fragment來實現頁面滑動切換。

首先,引入ViewPager2庫是實現該功能的基礎。通過在項目中添加以下代碼進行引入:

java
dependencies {
implementation 'androidx.viewpager2:viewpager2:1.0.0'
}

接著,在布局文件中使用``組件來構建頁面滑動容器:

xml
<androidx.viewpager2.widget.ViewPager2
android:id="@+id/viewpager"
android:layout_width="match_parent"
android:layout_height="match_parent"/>

為了演示,我們創建一個簡單的Fragment組件。其布局設計如下:

xml
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Content"/>

接下來,創建`ContentFragment`類並實現其邏輯,包括對布局的引用和內容顯示。

java
public class ContentFragment extends Fragment {

TextView textView;

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_content, container, false);
textView = view.findViewById(R.id.text_view);
return view;
}
}

為了適配不同頁面的管理,需要創建自定義的`ContentPagerAdapter`類,繼承`FragmentStateAdapter`並實現`createFragment(int position)`與`getItemCount()`方法。

java
public class ContentPagerAdapter extends FragmentStateAdapter {

private ArrayList fragments;

public ContentPagerAdapter(@NonNull FragmentManager fragmentManager, @NonNull Lifecycle lifecycle) {
super(fragmentManager, lifecycle);
this.fragments = new ArrayList>();
}

@NonNull
@Override
public Fragment createFragment(int position) {
// 實例化Fragment
Fragment fragment = null;
// 添加或替換Fragment
return fragment;
}

@Override
public int getItemCount() {
return fragments.size();
}
}

將`ContentPagerAdapter`與`ViewPager2`進行綁定,完成頁面滑動切換的實現:

java
ViewPager2 viewPager = view.findViewById(R.id.viewpager);
ContentPagerAdapter adapter = new ContentPagerAdapter(getChildFragmentManager(), getLifecycle());
viewPager.setAdapter(adapter);

若需實現垂直方向的滑動切換,可簡單地在布局文件中添加`android:orientation="vertical"`屬性,或在代碼中調用`setOrientation(ViewPager2.ORIENTATION_VERTICAL)`方法。

當頁面集合發生變化,需要更新時,可以方便地使用`ContentPagerAdapter`來更新數據。由於ViewPager2基於RecyclerView實現,可以調用`notifyItemChanged(int position)`、`notifyItemInserted(int position)`等方法進行更新。

通過使用ViewPager2、FragmentStateAdapter與Fragment,開發者可以輕松實現界面中的頁面滑動切換功能。這一組件不僅支持水平方向的滑動,還能通過簡單的設置實現垂直方向的滑動,為應用界面設計提供了更多的靈活性與可能性。

❷ android錛宻wiperefreshlayout涓巚iewpager涓嬫媺鍐茬獊錛屾病婊戝埌欏墮儴灝卞埛鏂頒簡錛屾庝箞瑙e喅

婊戝姩鍐茬獊,鍙闇瑕佸湪瀛愭帶浠剁殑onTouch涓澧炲姞
getParent().(true);
琛ㄧず鍛婅瘔鐖舵帶浠訛紝涓嶈佸勭悊榪欎釜touch浜嬩歡,鍗沖彲瑙e喅婊戝姩鍐茬獊銆
榪介棶
viewPager.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
viewPager.(true);
....
return false;
}
});
榪欐牱鍐欒繕鏄娌″埌欏剁灝卞埛鏂頒簡錛

❸ android viewpager 數據如何刷新 呢

ViewPager的數據是通過PageAdapter來裝載的,刷新數據的方法有以下:

  1. 調用adapter.notifyDataSetChanged(); 刷新控制項,但是要覆蓋PagerAdapter的getItemPosition方法,並返回return POSITION_NONE;

  2. 利用PagerAdapter的工作機制,就是PagerAdapter的執行順序,PagerAdapter作為ViewPager的適配器,無論ViewPager有多少頁,PagerAdapter在初始化時也只初始化開始的2個View,即調用2次instantiateItem方法。而接下來每當ViewPager滑動時,PagerAdapter都會調用destroyItem方法將距離該頁2個步幅以上的那個View銷毀,以此保證PagerAdapter最多隻管轄3個View,且當前View是3個中的中間一個,如果當前View缺少兩邊的View,那麼就instantiateItem,如里有超過2個步幅的就destroyItem。

  3. 每當Adapter調用instantiateItem時,運用View.setTag方法將該View標識。當需要更新這個View的數據時,通過調用ViewPager.findViewWithTag方法找到相應的View,然後更新View中的數據。

❹ android怎麼viewpager實現循環切換圖片

Android中的ViewPager則實現了左右滑動的效果,ViewPager類提供了多界面切換的新效果。利用ViewPager實現圖片循環滾動代碼如下:

1、首先是布局文件,使用了一個ViewPager控制項:

<spanstyle="padding:0px;margin:0px;font-size:14px;"><RelativeLayoutxmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.v4.view.ViewPager
android:id="@+id/viewpager"
android:layout_width="match_parent"
android:layout_height="match_parent">
</android.support.v4.view.ViewPager>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignBottom="@id/viewpager"
android:background="#33000000"
android:orientation="vertical"
android:padding="5dip">
<TextView
android:id="@+id/tv_image_description"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:text="第一個引導頁面"
android:textColor="@android:color/white"
android:textSize="14sp"/>
<LinearLayout
android:id="@+id/ll_points"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="5dip"
android:layout_gravity="center_horizontal"
android:orientation="horizontal">
</LinearLayout>
</LinearLayout>
</RelativeLayout></span>

2、接下來實現一個繼承PagerAdapter的MyAdapter類,實現一個PagerAdapter,代碼如下:

<spanstyle="padding:0px;margin:0px;font-size:14px;">packagecom.example.viewpagertest;
importjava.util.List;
importandroid.support.v4.view.PagerAdapter;
importandroid.view.View;
importandroid.view.ViewGroup;
importandroid.widget.ImageView;
{
privateList<ImageView>mImageViewList;
publicViewPagerAdapter(List<ImageView>imageViewList){
super();
this.mImageViewList=imageViewList;
}
/**
*該方法將返回所包含的Item總個數。為了實現一種循環滾動的效果,返回了基本整型的最大值,這樣就會創建很多的Item,
*其實這並非是真正的無限循環。
*/
@Override
publicintgetCount(){
returnInteger.MAX_VALUE;
}
/**
*判斷出去的view是否等於進來的view如果為true直接復用
*/
@Override
publicbooleanisViewFromObject(Viewarg0,Objectarg1){
returnarg0==arg1;
}
/**
*銷毀預載入以外的view對象,會把需要銷毀的對象的索引位置傳進來,就是position,
*因為mImageViewList只有五條數據,而position將會取到很大的值,
*所以使用取余數的方法來獲取每一條數據項。
*/
@Override
publicvoiddestroyItem(ViewGroupcontainer,intposition,Objectobject){
container.removeView(mImageViewList.get(position%mImageViewList.size()));
}
/**
*創建一個view,
*/
@Override
publicObjectinstantiateItem(ViewGroupcontainer,intposition){
container.addView(mImageViewList.get(position%mImageViewList.size()));
returnmImageViewList.get(position%mImageViewList.size());
}
}
</span>

3、最後是主界面部分的代碼:

<spanstyle="padding:0px;margin:0px;font-size:14px;">packagecom.example.viewpagertest;
importjava.util.ArrayList;
importjava.util.List;
importandroid.app.Activity;
importandroid.os.Bundle;
importandroid.os.Handler;
importandroid.os.Message;
importandroid.os.SystemClock;
importandroid.support.v4.view.ViewPager;
importandroid.support.v4.view.ViewPager.OnPageChangeListener;
importandroid.view.View;
importandroid.widget.ImageView;
importandroid.widget.LinearLayout;
importandroid.widget.LinearLayout.LayoutParams;
importandroid.widget.TextView;

{

privateList<ImageView>imageViewList;
privateTextViewtvDescription;
privateLinearLayoutllPoints;
privateString[]imageDescriptions;
=0;
privateViewPagermViewPager;
privatebooleanisLoop=true;
privateHandlerhandler=newHandler(){

@Override
publicvoidhandleMessage(Messagemsg){
super.handleMessage(msg);

mViewPager.setCurrentItem(mViewPager.getCurrentItem()+1);
}
};

@Override
protectedvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
setView();
initView();
}

publicvoidsetView(){
setContentView(R.layout.activity_splash_viewpager);

//自動切換頁面功能
newThread(newRunnable(){

@Override
publicvoidrun(){
while(isLoop){
SystemClock.sleep(2000);
handler.sendEmptyMessage(0);
}
}
}).start();
}

publicvoidinitView(){
mViewPager=(ViewPager)findViewById(R.id.viewpager);
tvDescription=(TextView)findViewById(R.id.tv_image_description);
llPoints=(LinearLayout)findViewById(R.id.ll_points);

prepareData();

ViewPagerAdapteradapter=newViewPagerAdapter(imageViewList);
mViewPager.setAdapter(adapter);
mViewPager.setOnPageChangeListener(this);

tvDescription.setText(imageDescriptions[previousSelectPosition]);
llPoints.getChildAt(previousSelectPosition).setEnabled(true);

/**
*2147483647/2=1073741820-1
*設置ViewPager的當前項為一個比較大的數,以便一開始就可以左右循環滑動
*/
intn=Integer.MAX_VALUE/2%imageViewList.size();
intitemPosition=Integer.MAX_VALUE/2-n;

mViewPager.setCurrentItem(itemPosition);
}

privatevoidprepareData(){
imageViewList=newArrayList<ImageView>();
int[]imageResIDs=getImageResIDs();
imageDescriptions=getImageDescription();

ImageViewiv;
Viewview;
for(inti=0;i<imageResIDs.length;i++){
iv=newImageView(this);
iv.setBackgroundResource(imageResIDs[i]);
imageViewList.add(iv);

//添加點view對象
view=newView(this);
view.setBackgroundDrawable(getResources().getDrawable(R.drawable.point_background));
LayoutParamslp=newLayoutParams(5,5);
lp.leftMargin=10;
view.setLayoutParams(lp);
view.setEnabled(false);
llPoints.addView(view);
}
}

privateint[]getImageResIDs(){
returnnewint[]{
R.drawable.bg1,
R.drawable.bg2,
R.drawable.bg3,
R.drawable.pic_01,
R.drawable.pic_02
};
}

privateString[]getImageDescription(){
returnnewString[]{
"第一個引導頁面",
"第二個引導頁面",
"第三個引導頁面",
"第四個引導頁面",
"第五個引導頁面"
};
}
@Override
(intarg0){

}
@Override
publicvoidonPageScrolled(intarg0,floatarg1,intarg2){

}
@Override
publicvoidonPageSelected(intposition){
//改變圖片的描述信息
tvDescription.setText(imageDescriptions[position%imageViewList.size()]);
//切換選中的點,把前一個點置為normal狀態
llPoints.getChildAt(previousSelectPosition).setEnabled(false);
//把當前選中的position對應的點置為enabled狀態
llPoints.getChildAt(position%imageViewList.size()).setEnabled(true);
previousSelectPosition=position%imageViewList.size();
}
@Override
protectedvoidonDestroy(){
super.onDestroy();
isLoop=false;
}
}
</span>

❺ android浣跨敤ViewPager瀹炵幇杞鎾鏁堟灉鏁欑▼

ViewPager錛氫竴涓鍙浠ュ疄鐜拌嗗浘宸﹀彸婊戝姩鍒囨崲鐨勬帶浠躲
ViewPager鐨勫熀鏈浣跨敤錛
ViewPager鐨勮嗗浘闇瑕侀氳繃PagerAdapter鏉ュ疄鐜版樉紺恆
PagerAdapter鐨勪富瑕佹柟娉曪細
鈼 getCount 瑙嗗浘鐨勬暟閲
鈼 instantiateItem 娣誨姞瑙嗗浘
鈼 destroyItem 閿姣佽嗗浘
鈼 isViewFromObject 鏄鍚︾敱瀵硅薄鍒涘緩瑙嗗浘
ViewPager鐨勫父鐢ㄦ柟娉曪細
setAdapter 璁劇疆閫傞厤鍣
addOnPageChangeListener 鐩戝惉欏甸潰鍒囨崲鐨勭姸鎬
setCurrentItem 璁劇疆褰撳墠欏甸潰鐨勭儲寮
瀹炵幇騫垮憡杞鎾
鎶鏈鐐瑰垎鏋愶細
1銆佺綉緇滆繛鎺
2銆丣SON瑙f瀽
3銆乂iewPager鐨勫垵濮嬪寲
4銆佸浘鐗囩殑寮傛ュ姞杞
5銆佸渾鐐規寚紺哄櫒鐨勫疄鐜
浣跨敤selector+shape瀹炵幇鍦嗙偣鍥劇墖
鍔ㄦ佸壋寤篒mageView娣誨姞鍒伴泦鍚堜腑錛屽悓鏃舵坊鍔犲埌甯冨矓涓
鍦╒iewPager鍒囨崲浜嬩歡涓錛屽垏鎹㈠渾鐐圭姸鎬
6銆佽嚜鍔ㄥ垏鎹㈡晥鏋
浣跨敤Handler鐨刾ost鏂規硶錛屽畾鏃舵墽琛屼唬鐮
璧勬簮鏂囦歡錛
mydot.xml //鍒涘緩鍦嗙偣璧勬簮錛屾斁鍦╠rawable鏂囦歡涓
甯冨矓鏂囦歡錛
activity_main.xml
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/lv_list" /
activity_banner.xml
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity"
android:id="@+id/vp_image"
android:layout_width="wrap_content"
android:layout_height="150dp"
android:layout_gravity="center" /
android:layout_width="match_parent"
android:layout_height="40dp"
android:id="@+id/layout"
android:layout_gravity="bottom"
android:gravity="center"
android:orientation="horizontal"
java浠g爜
ImageLoader.java //璇ヤ唬鐮佹槸閫氳繃URL鑾峰彇鍥劇墖璧勬簮
package cn.e.huse.banner_re.util;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.AsyncTask;
import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
/**
* 鍥劇墖鍔犺澆鐨勫伐鍏風被
* @author xray
*
*/
public class ImageLoader {
/**
* 鍥劇墖鍔犺澆瀹屾垚鐨勫洖璋冩帴鍙
* 娣誨姞URL鍙傛暟錛岀敤浜庡仛鍥劇墖閿欎綅鍒ゆ柇
*/
public interface OnImageLoadListener{
//瀹屾垚鍥劇墖鍔犺澆
void onImageLoadComplete(String url, Bitmap bitmap);
}
private OnImageLoadListener mListener;
/**
* 鍚鍔ㄥ浘鐗囧姞杞戒換鍔
* @param urlStr
* @param listener
*/
public void loadImage(String urlStr,OnImageLoadListener listener){
this.mListener = listener;
new ImageLoadTask().execute(urlStr);
}
/**
* 鍥劇墖鍔犺澆浠誨姟
* @author xray
*
*/
class ImageLoadTask extends AsyncTask
@Override
protected UrlAndBitmap doInBackground(String... params) {
try {
//鍒涘緩URL錛屾寚瀹氬浘鐗囧湴鍧
URL url = new URL(params[0]);
//鎵撳紑榪炴帴鑾峰緱HttpURLConnection瀵硅薄
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
//鑾峰緱鏂囦歡杈撳叆嫻
InputStream stream = conn.getInputStream();
//鎶婅緭鍏ユ祦杞鎹涓哄浘鐗
Bitmap bmp = BitmapFactory.decodeStream(stream);
//鍏抽棴嫻
stream.close();
return new UrlAndBitmap(params[0],bmp);
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
//鍖呰呭浘鐗囧湴鍧鍜屽浘鐗
class UrlAndBitmap{
String url;
Bitmap bitmap;
public UrlAndBitmap(String url, Bitmap bitmap) {
this.url = url;
this.bitmap = bitmap;
}
}
@Override
protected void onPostExecute(UrlAndBitmap result) {
//榪涜屾帴鍙e洖璋
if(mListener != null){
mListener.onImageLoadComplete(result.url,result.bitmap);
}
}
}
}
JSONLoader.java
//璇誨彇鏈嶅姟鍣╦son
package cn.e.huse.banner_re.util;
import android.os.AsyncTask;
import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
/**
* 璇誨彇鏈嶅姟鍣↗SON鐨勫伐鍏風被
* @author xray
*
*/
public class JSONLoader {
public interface OnJSONLoadListener{
void onJSONLoadComplete(String json);
}
private OnJSONLoadListener mListener;
public void loadJSON(String urlStr,OnJSONLoadListener listener){
this.mListener = listener;
new JSONLoadTask().execute(urlStr);
}
class JSONLoadTask extends AsyncTask
@Override
protected String doInBackground(String... params) {
try {
URL url = new URL(params[0]);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
InputStream inputStream = conn.getInputStream();
byte[] buffer = new byte[1024];
int len = 0;
//StringBuffer 綰跨▼瀹夊叏錛屾ц兘浣 VS StringBuilder 綰跨▼涓嶅畨鍏錛屾ц兘楂
StringBuilder strB = new StringBuilder();
while((len = inputStream.read(buffer)) != -1){
//灝嗗瓧鑺傜爜杞鎹涓篠tring
String str = new String(buffer,0,len);
strB.append(str);
}
inputStream.close();
return strB.toString();
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
@Override
protected void onPostExecute(String result) {
if(mListener != null){
mListener.onJSONLoadComplete(result);
}
}
}
}
MyViewPagerAdapter.java
package cn.e.huse.banner_re.adapter;
import java.util.List;
import android.support.v4.view.PagerAdapter;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
/**
* 鍥劇墖杞鎾鐨勯傞厤鍣
* @author Lenovo
*
*/
public class MyViewPagerAdapter extends PagerAdapter {
private List mData;
public MyViewPagerAdapter(List mData) {
this.mData = mData;
}
//榪斿洖瑙嗗浘鐨勬暟閲
@Override
public int getCount() {
return mData.size();
}
@Override
public boolean isViewFromObject(View arg0, Object arg1) {
return arg0 == arg1;
}
//閿姣佸浘鐗
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
container.removeView(mData.get(position));
}
//娣誨姞鍥劇墖
@Override
public Object instantiateItem(ViewGroup container, int position) {
container.addView(mData.get(position));
return mData.get(position);
}
}
MainActivity.java
package cn.e.huse.banner_re;
import java.util.ArrayList;
import java.util.List;
import org.json.JSONArray;
import org.json.JSONObject;
import android.app.Activity;
import android.graphics.Bitmap;
import android.os.Bundle;
import android.os.Handler;
import android.support.v4.view.ViewPager;
import android.support.v4.view.ViewPager.OnPageChangeListener;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ArrayAdapter;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.RadioButton;
import cn.e.huse.banner_re.adapter.MyViewPagerAdapter;
import cn.e.huse.banner_re.util.ImageLoader;
import cn.e.huse.banner_re.util.ImageLoader.OnImageLoadListener;
import cn.e.huse.banner_re.util.JSONLoader;
import cn.e.huse.banner_re.util.JSONLoader.OnJSONLoadListener;
public class MainActivity extends Activity implements OnClickListener{
public static final String URL_GIFT = "http://www.1688wan.com/majax.action?method=getGiftListpageno=1";
public static final String URL_BASE = "http://www.1688wan.com";
private ListView mLv;
//鏀劇疆鍦嗙偣鍥劇墖鐨勫竷灞
private LinearLayout mLayout;
private ViewPager mPager;
//淇濆瓨viewpager涓婂浘鐗囩殑闆嗗悎
private List mImageViews;
//淇濆瓨鍦嗙偣鍥劇墖鐨勯泦鍚
private List mDotViews;
//褰撳墠鍥劇墖
private ImageView mDotView;
//褰撳墠涓嬫爣
private int mIndex;
private Handler mHandler = new Handler();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//鍒濆嬪寲viewpager
initViewPager();
}
private void initViewPager() {
new JSONLoader().loadJSON(URL_GIFT, new OnJSONLoadListener() {
@Override
public void onJSONLoadComplete(String json) {
//寰楀埌鍥劇墖鐨勫湴鍧
List list = josnPare(json);
//鍒濆嬪寲涓繪帶浠
initView();
//灝嗗浘鐗囨樉紺哄埌viewpager涓
initImageViews(list);
//涓篤iewPager璁劇疆閫傞厤鍣
mPager.setAdapter(new MyViewPagerAdapter(mImageViews));
//鍔犺澆鍦嗙偣鍥劇墖
initDot(mImageViews.size());
//瀹炵幇鍥劇墖鐨勮疆鎾
mPager.postDelayed(new Runnable() {
@Override
public void run() {
//涓嬫爣鑷鍔++
mIndex++;
//褰撲笅鏍囧埌鏈鍚庢椂錛屽氨閲嶆柊鏉ヨ繃
if(mIndex = mImageViews.size()){
mIndex = 0;
}
//璁劇疆鍥劇墖
mPager.setCurrentItem(mIndex);
//閲嶅嶈皟鐢
mHandler.postDelayed(this, 1500);
}
}, 1500);
//娣誨姞欏電爜婊戝姩鐨勭洃鍚錛屽疄鐜板渾鐐瑰浘鐗囩殑鍒囨崲
mPager.setOnPageChangeListener(new OnPageChangeListener() {
//欏甸変腑鍚庤皟鐢
@Override
public void onPageSelected(int arg0) {
//鏀瑰彉鍘熸潵鐨勫渾鐐瑰浘鐗囩殑鐘舵
mDotView.setEnabled(true);
//鏇存柊褰撳墠鐨勫渾鐐瑰浘鐗
mDotView = mDotViews.get(arg0);
//灝嗗綋鍓嶉変腑鐨勫渾鐐硅句負閫変腑鐘舵
mDotView.setEnabled(false);
//鏇存柊涓嬫爣
mIndex = arg0;
}
//婊戝姩涓閫旇皟鐢
@Override
public void onPageScrolled(int arg0, float arg1, int arg2) {
}
//欏甸潰婊戝姩鐘舵佷慨鏀
@Override
public void onPageScrollStateChanged(int arg0) {
}
});
}
});
}
/**鑾峰彇鍦嗙偣鍥劇墖鍑芥暟
* @param count viewpager涓婂浘鐗囩殑鏁伴噺
*/
private void initDot(int count){
mDotViews = new ArrayList();
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.WRAP_CONTENT,
LinearLayout.LayoutParams.WRAP_CONTENT);
//璁劇疆杈硅窛
params.setMargins(5, 0, 5, 0);
for(int i = 0; i count; i++){
ImageView image = new ImageView(this);
//璁劇疆鍦嗙偣鍥劇墖
image.setImageResource(R.drawable.mydot);
//璁劇疆鍥劇墖鐨勪綅緗錛屾柟渚垮悗闈㈢殑鍙栧
image.setTag(i);
//璁劇疆鐩戝惉
image.setOnClickListener(this);
//娣誨姞鍒板竷灞涓
mLayout.addView(image, params);
//灝嗗渾鐐瑰浘鐗囦繚瀛樺埌闆嗗悎涓
mDotViews.add(image);
}
mDotView = mDotViews.get(0);
mDotView.setEnabled(false);
}
/**
*鏄劇ず鍥劇墖鐨勫嚱鏁
*/
private void initImageViews(List list) {
mImageViews = new ArrayList();
for(String str : list){
final ImageView imageView = new ImageView(this);
//璁劇疆榛樿ゅ浘鐗
imageView.setImageResource(R.drawable.ic_launcher);
new ImageLoader().loadImage(URL_BASE+str, new OnImageLoadListener() {
@Override
public void onImageLoadComplete(String url, Bitmap bitmap) {
if(bitmap != null){
imageView.setImageBitmap(bitmap);
}
}
});
//灝咺mageView淇濆瓨鍒伴泦鍚堜腑
mImageViews.add(imageView);
}
}
/**
* JSON瑙f瀽鑾峰彇鍥劇墖鐨勫湴鍧
* @param url
* @return
*/
private List josnPare(String url){
List list = new ArrayList();
try {
JSONObject jobj = new JSONObject(url);
JSONArray array = jobj.getJSONArray("ad");
for(int i = 0; i array.length(); i++){
JSONObject obj = (JSONObject) array.get(i);
list.add(obj.getString("iconurl"));
}
} catch (Exception e) {
e.printStackTrace();
}
return list;
}
/**
* 鍒濆嬪寲鎺т歡
*/
private void initView() {
//鎵懼埌鎺т歡
mLv = (ListView) findViewById(R.id.lv_list);
View view = LayoutInflater.from(this).inflate(R.layout.activity_banner, null);
mPager = (ViewPager)view.findViewById(R.id.vp_image);
//鍦嗙偣鍥劇墖甯冨矓
mLayout = (LinearLayout)view.findViewById(R.id.layout);
//妯℃嫙鏁版嵁
List mList = new ArrayList();
for(int i = 0; i 20; i++){
mList.add("鏉$洰--"+i);
}
//鍒涘緩閫傞厤鍣
ArrayAdapter mAdapter = new ArrayAdapter(this,
android.R.layout.simple_list_item_1,
android.R.id.text1,
mList);
//璁劇疆澶撮儴瑙嗗浘
mLv.addHeaderView(view);
//璁劇疆閫傞厤鍣
mLv.setAdapter(mAdapter);
/*//鍦嗙偣鍥劇墖甯冨矓
mLayout = (LinearLayout)findViewById(R.id.layout);*/
}
/**
* 鍦嗙偣鍥劇墖鐨勭洃鍚浜嬩歡
*/
@Override
public void onClick(View arg0) {
//鑾峰彇璇ュ渾鐐瑰浘鐗囩殑浣嶇疆
int index = Integer.parseInt(arg0.getTag().toString());
//灝唙iewpager鐨勫浘鐗囨樉紺烘垚涓嬫爣涓篿ndex鐨勫浘鐗
mPager.setCurrentItem(index);
//灝嗗師鏉ョ殑璁劇疆鎴愰粯璁ゅ
mDotView.setEnabled(true);
//淇濆瓨鏂扮殑鍊
mDotView = (ImageView) arg0;
//灝嗘柊鐨勫兼敼鍙樻垚false
mDotView.setEnabled(false);
//鏇存柊涓嬫爣
mIndex = index;
}
}
娉ㄦ剰錛氬洜涓鴻繖閲岀敤鍒頒簡json瑙f瀽錛岄渶瑕佺敤鍒拌仈緗戞搷浣滐紝涓瀹氳佸啓涓婁笂緗戠殑鏉冮檺錛

   銆銆榪愯屾晥鏋滐細

閱讀全文

與androidviewpager刷新相關的資料

熱點內容
ar編程游戲 瀏覽:865
程序員最佳境界 瀏覽:179
2021微信小程序反編譯教程 瀏覽:563
編程用什麼鍵盤比較好 瀏覽:378
dev編譯器內存地址溢出 瀏覽:993
雲伺服器能開網店嗎 瀏覽:381
如何將家裡的路由器變成伺服器 瀏覽:687
在混合加密的方式下 瀏覽:371
陰謀pdf 瀏覽:328
androidview詳解 瀏覽:551
美女吃草莓解壓視頻 瀏覽:963
android藍牙開發源碼 瀏覽:611
如何查看電腦系統伺服器ip地址查詢 瀏覽:391
把文件夾設鎖 瀏覽:572
命令行語句 瀏覽:220
企友3e財務如何連接伺服器 瀏覽:986
華為手機如何刪除卸載app殘留數據 瀏覽:545
rpm的命令作用 瀏覽:367
如何查看網站的伺服器時間 瀏覽:852
編譯局和人民出版社 瀏覽:654