android 页面标题,Android v4包下的PagerTitleStrip,ViewPager的页面标题
android.support.v4.view.PagerTitleStrip
將Page的Title分離出來的一個自定義View,這樣可以靈活的設置title的樣式、文本。
效果:
xml使用:
android:id="@+id/pager"
android:layout_width="match_parent"
android:layout_height="match_parent">
android:id="@+id/pager_title_strip"
android:layout_width="match_parent"
android:layout_height="30dp"
android:layout_gravity="bottom"
android:paddingTop="4dp"
android:paddingBottom="4dp" />
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并設置。
原文:http://blog.csdn.net/jjwwmlp456/article/details/44595815
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的android 页面标题,Android v4包下的PagerTitleStrip,ViewPager的页面标题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 华为android升级国内版,华为EMU
- 下一篇: 推特换标:“小蓝鸟&rdqu