許多使用滑動切換頁面的方式都是使用 ViewPager 完成的
底下是source code的下載網址,裡面也附有許多的sample
https://github.com/JakeWharton/Android-ViewPagerIndicator
要使用該sample
首先必須先將lib import 且 copy 到workspace
(步驟是 import -> exist android project -> 選擇路徑 -> copy project into workspace)
接著必須將該lib加入reference的列表中
(步驟為在project 按右鍵 -> properties -> 選擇Android項目 ->在library那欄選擇 add 將lib 加入reference)
接著如果出現需要import R的錯誤就必須將local端的 android-support-v4.jar 覆蓋library的 android-support-v4.jar
基本上這樣之後使用 Clean Build 就可以build過了 sample code 的 import 也是相同的步驟
如何使用 ViewPager
viewpager 需要一個PageAdapter,然後在 instantiateItem 可以客製化自己的UI
,記得必須destroyItem 否則會crash,如果需要顯是title的話就必須override 掉getPageTitle,
底下是PageAdapter的範例
class myPagerAdapter extends PagerAdapter {
private List<String> mTitles;
public myPagerAdapter(List<String> titles) {
mTitles = titles;
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return mTitles.size();
}
@Override
public Object instantiateItem(View container, int position) {
// TODO Auto-generated method stub
LayoutInflater inflater = (LayoutInflater) container.getContext()
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
int id;
switch (position%3) {
case 0:
id = R.layout.firstpage;
break;
case 1:
id = R.layout.secondpage;
break;
case 2:
id = R.layout.thirdpage;
break;
default:
id = R.layout.secondpage;
break;
}
View view = inflater.inflate(id, null);
((ViewPager) container).addView(view, 0);
return view;
}
@Override
public void destroyItem(View container, int position, Object object) {
// TODO Auto-generated method stub
((ViewPager) container).removeView((View) object);
}
@Override
public CharSequence getPageTitle(int position) {
// TODO Auto-generated method stub
return mTitles.get(position);
}
@Override
public boolean isViewFromObject(View arg0, Object arg1) {
// TODO Auto-generated method stub
return arg0 == arg1;
}
然後只需要在MainActivity裡設置 viewpager 和TabPageIndicator 即可
MainActivity.java
mViewPager.setAdapter(new myPagerAdapter(titles));
TabPageIndicator indicator = (TabPageIndicator)findViewById(R.id.indicator);
indicator.setViewPager(mViewPager);
activity_main.xml
<com.viewpagerindicator.TabPageIndicator
android:id="@+id/indicator"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
<android.support.v4.view.ViewPager
android:id="@+id/viewpager"
android:layout_height="0dp"
android:layout_weight="1"
android:layout_width="wrap_content"
/>
這樣viewpager就完成了
可左右滑動,或者按上方的title 變換頁面
附上 sample Code



沒有留言:
張貼留言