多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > php開源 > 綜合技術 > Android UI之ViewPager

Android UI之ViewPager

來源:程序員人生   發布時間:2014-12-22 08:57:26 閱讀次數:4033次
ViewPager需要android-support-v4.jar這個包的支持,它是Google提供的1個附加包。
ViewPager主要用來組織1組界面,并且通過左右滑動的方式來展現。與ListView類似,ViewPager也需要1個適配器,也就是PagerAdapter,來把這組界面填充到ViewPager中。

ViewPager的使用步驟:
1、往布局文件里加入ViewPager組件
2、加載要顯示的界面布局
3、在Activity里實例化ViewPager組件,并設置它的適配器和監聽事件

實例:
運行效果:

代碼清單:
布局文件:main.xml
<?xml version="1.0" encoding="utf⑻"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="wrap_content" android:layout_height="wrap_content"> <android.support.v4.view.ViewPager android:id="@+id/viewpager" android:layout_width="fill_parent" android:layout_height="fill_parent" /> </RelativeLayout>

布局文件:viewpager_page1.xml
<?xml version="1.0" encoding="utf⑻"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" android:gravity="center" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Page1" /> </LinearLayout>

Java源代碼文件:MainActivity.java
package com.rainsong.viewpagerdemo; import java.util.ArrayList; import android.app.Activity; import android.os.Bundle; import android.support.v4.view.ViewPager; import android.support.v4.view.ViewPager.OnPageChangeListener; import android.view.LayoutInflater; import android.view.View; import android.widget.Toast; public class MainActivity extends Activity implements OnPageChangeListener { ViewPager mViewPager; ViewPagerAdapter mViewPagerAdapter; ArrayList<View> mViews; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); // 將要分頁顯示的View裝入數組中 LayoutInflater inflater = getLayoutInflater(); mViews = new ArrayList<View>(); mViews.add(inflater.inflate(R.layout.viewpager_page1, null)); mViews.add(inflater.inflate(R.layout.viewpager_page2, null)); mViews.add(inflater.inflate(R.layout.viewpager_page3, null)); mViews.add(inflater.inflate(R.layout.viewpager_page4, null)); mViewPager = (ViewPager) findViewById(R.id.viewpager); mViewPagerAdapter = new ViewPagerAdapter(mViews); // 設置ViewPager的適配器和監聽事件 mViewPager.setAdapter(mViewPagerAdapter); mViewPager.setOnPageChangeListener(this); } @Override public void onPageScrollStateChanged(int arg0) { } @Override public void onPageScrolled(int arg0, float arg1, int arg2) { } @Override public void onPageSelected(int position) { int pageId = position + 1; Toast.makeText(MainActivity.this, "Page" + pageId + " Selected", Toast.LENGTH_SHORT).show(); } }

Java源代碼文件:ViewPagerAdapter.java
package com.rainsong.viewpagerdemo; import java.util.ArrayList; import android.support.v4.view.PagerAdapter; import android.support.v4.view.ViewPager; import android.view.View; import android.view.ViewGroup; public class ViewPagerAdapter extends PagerAdapter { private ArrayList<View> views; public ViewPagerAdapter (ArrayList<View> views){ this.views = views; } @Override public int getCount() { if (views != null) { return views.size(); } return 0; } @Override public Object instantiateItem(ViewGroup view, int position) { ((ViewPager) view).addView(views.get(position), 0); return views.get(position); } @Override public void destroyItem(ViewGroup view, int position, Object arg2) { ((ViewPager) view).removeView(views.get(position)); } @Override public boolean isViewFromObject(View view, Object arg1) { return (view == arg1); } }

API知識點
public class
ViewPager
extends ViewGroup

Class Overview
Layout manager that allows the user to flip left and right through pages of data. You supply an implementation of a PagerAdapter to generate the pages that the view shows.

void setAdapter(PagerAdapter adapter)
Set a PagerAdapter that will supply views for this pager as needed.

void setOnPageChangeListener(ViewPager.OnPageChangeListener listener)
Set a listener that will be invoked whenever the page changes or is incrementally scrolled.

public abstract class
PagerAdapter
extends Object

Known Direct Subclasses
FragmentPagerAdapter, FragmentStatePagerAdapter

Class Overview
Base class providing the adapter to populate pages inside of a ViewPager.

When you implement a PagerAdapter, you must override the following methods at minimum:
instantiateItem(ViewGroup, int)
destroyItem(ViewGroup, int, Object)
getCount()
isViewFromObject(View, Object)

Object instantiateItem(ViewGroup container, int position)
Create the page for the given position.

void destroyItem(ViewGroup container, int position, Object object)
Remove a page for the given position.

abstract int getCount()
Return the number of views available.

abstract boolean isViewFromObject(View view, Object object)
Determines whether a page View is associated with a specific key object as returned by instantiateItem(ViewGroup, int).

public static interface
ViewPager.OnPageChangeListener

Class Overview
Callback interface for responding to changing state of the selected page.

abstract void onPageScrollStateChanged(int state)
Called when the scroll state changes.

abstract void onPageScrolled(int position, float positionOffset, int positionOffsetPixels)
This method will be invoked when the current page is scrolled, either as part of a programmatically initiated smooth scroll or a user initiated touch scroll.

abstract void onPageSelected(int position)
This method will be invoked when a new page becomes selected.

生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 欧美18毛片免费看 | 波多野结衣资源在线 | 国产在线高清视频 | 国产午夜精品久久久久免费视 | 日本免费爱爱视频 | 国产在线视频第一页 | 国产精品自在线拍国产 | 欧美jizzjizz| 国产精品亚洲第一区二区三区 | 日韩 国产 在线 | 日韩欧美亚洲国产一区二区三区 | 又污又黄又无遮挡的网站国产 | 三级黄在线 | 69国产视频 | 九色国产 | 欧美一区二区三区在线可观看 | 18以下勿进色禁视频免费看 | 欧美性猛交99久久久久99 | 性欧美xxx极品另类 性欧美暴力猛交69hd | 欧美日韩不卡码一区二区三区 | 国产欧美一区二区三区久久 | 免费一区二区三区 | 日本欧美视频 | 欧美人与禽xoxo性伦交 | 久久精品视频5 | 国产www视频| 亚洲精品高清在线一区二区三区 | 九色地址| 激情在线视频 | 亚洲成a人片77777kkkk | 亚洲经典在线中文字幕 | 欧美激情精品久久久久久久九九九 | 精品区 | 日韩色视频一区二区三区亚洲 | 另类专区另类专区亚洲 | 欧美日韩中文国产 | 亚洲男女天堂 | 图片区小说区激情区偷拍区 | 九色国产 | 欧美国产免费 | 18在线观看国内精品视频 |