android.support.v4.view.PagerTitleStrip

将Page的Title分离出来的一个自定义View,这样可以灵活的设置title的样式、文本。


效果:



xml使用:

<android.support.v4.view.ViewPager xmlns:android="http://schemas.android.com/apk/res/android"android:id="@+id/pager"android:layout_width="match_parent"android:layout_height="match_parent"><android.support.v4.view.PagerTitleStripandroid: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.support.v4.view.ViewPager>

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。

@Overridepublic 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. Android(安卓)4.0.1 源码下载,模拟器编译和运行
  2. Android(安卓)性能优化(二)Handler运行机制原理,源码分析
  3. 成品app直播源码,Android自屏幕底部滑出更多面板的实现
  4. android通过更改hosts免优酷广告方法
  5. Android之Weight属性源码解析
  6. Android(安卓)音视频深入 四 Android原生API录视频MP4,有缺陷,没有
  7. Android(安卓)应用保存状态
  8. android避免service被杀 博客分类: android 1.在service中重写下
  9. android热修复--阿里热修复使用和源码分析

随机推荐

  1. 【Android(安卓)界面效果19】Android中sh
  2. 编写自定义的 Android(安卓)Preference
  3. 使用Android(安卓)SwipeRefreshLayout了
  4. Android工程引入第三方jar包
  5. android手指缩放效果
  6. android测试工具大全
  7. Android中的Data Binding初探 (三)
  8. 线程中的消息机制
  9. ImageView的属性大全
  10. 带着问题学习 Android(安卓)Handler 消息