Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android v4包下的PagerTitleStrip,ViewPager的頁面標題

Android v4包下的PagerTitleStrip,ViewPager的頁面標題

編輯:關於Android編程

android.support.v4.view.PagerTitleStrip

將Page的Title分離出來的一個自定義View,這樣可以靈活的設置title的樣式、文本。

 

效果:

\\

 

xml使用:

 

 
android:layout_gravity 控制標題的位置 一般取值為 bottom或top

 

 

看到開源項目ImageLoader中使用了這個,找了半天沒看到哪裡findbyid的,

原來在它的源碼裡就把它想成是ViewPager的子控件了。

部份源碼:

 

 @Override
    protected void onAttachedToWindow() {
        super.onAttachedToWindow();

        final ViewParent parent = getParent();
        if (!(parent instanceof ViewPager)) {
            throw new IllegalStateException(
                    PagerTitleStrip must be a direct child of a ViewPager.);
        }

        final ViewPager pager = (ViewPager) parent;
        final PagerAdapter adapter = pager.getAdapter();

        pager.setInternalPageChangeListener(mPageListener);
        pager.setOnAdapterChangeListener(mPageListener);
        mPager = pager;
        updateAdapter(mWatchingAdapter != null ? mWatchingAdapter.get() : null, adapter);
    }

分析:在onAttachedToWindow()時,直接找出parent-view,如果是ViewPager才能使用,否則直接拋出異常。

 

設置title值

PagerAdapter 裡有一個getPageTitle(),需要重寫它,然後可以根據不同的page返回不同的title。

 

@Override
public CharSequence getPageTitle(int position) {
	switch (position) {
		case 0:
			return getString(R.string.title_list);
		case 1:
			return getString(R.string.title_grid);
		default:
	return null;
	}
}

 

而在PageTitleStrip的updateText()源碼裡,調用了viewPager的adapter.getPageTitle,拿到title並設置。

 

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved