【开源】PagedHeadListView
PagedHeadListView
- https://github.com/JorgeCastilloPrz/PagedHeadListView
介绍:
如果你在寻找一个带ViewPager头部效果的ListView,这个库正是你所需要的。PagedHeadListView中你可以将自己的 fragment作为page放到ListView的header中,同时翻页的指示效果(page indicator)也会自动添加。你可以自定义page indicator 的显示效果(颜色,位置等)、ViewPager拖动时候的动画效果、以及headerView的触摸响应。PagedHeadListView最低版本支持API 11.运行效果:
![]()
使用说明:
xml中:别忘了加xmlns:pagedheadlistview="http://schemas.android.com/apk/res-auto"
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> <com.jorgecastilloprz.pagedheadlistview.PagedHeadListView android:id="@+id/pagedHeadListView" android:layout_width="match_parent" android:layout_height="match_parent" pagedheadlistview:headerHeight="@dimen/header_height" pagedheadlistview:indicatorType="bottomAligned" pagedheadlistview:disableVerticalTouchOnHeader="true" pagedheadlistview:indicatorBgColor="@color/material_green" pagedheadlistview:indicatorColor="@color/material_light_green" /></RelativeLayout> |
java代码中:
|
1
2
3
4
5
6
7
8
9
10
11
12
13
|
mPagedHeadList = (PagedHeadListView) rootView.findViewById(R.id.pagedHeadListView);mPagedHeadList.addFragmentToHeader(new FirstHeaderFragment());mPagedHeadList.addFragmentToHeader(new SecondHeaderFragment());mPagedHeadList.addFragmentToHeader(new ThirdHeaderFragment());mPagedHeadList.addFragmentToHeader(new FourthHeaderFragment());mPagedHeadList.addFragmentToHeader(new FifthHeaderFragment());mPagedHeadList.setHeaderOffScreenPageLimit(4);mPagedHeadList.setHeaderPageTransformer(PageTransformerTypes.FLIP);ArrayList<String> mockItemList = new ArrayList<String>();for (int i = 0; i < 50; i++) mockItemList.add(getResources().getString(R.string.mock_item) + " " + (i+1));MockListAdapter mockListAdapter = new MockListAdapter(getActivity(), R.layout.mock_list_item, mockItemList);mPagedHeadList.setAdapter(mockListAdapter); |
一些方法:
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
//Types vaiable: DEPTH, ZOOMOUT, ROTATE, SCALE, FLIP, ACCORDION.mPagedHeadListView.setHeaderPageTransformer(PageTransformerTypes pageTransformerType);//This is a mapping for normal setPageTransformer from Android support ViewPager.mPagedHeadListView.setHeaderPageTransformer(boolean reverseDrawingOrder, ViewPager.PageTransformer customPageTransformer);//Dynamic mode to set header's view height. (Always in pixels)mPagedHeadListView.setHeaderHeight(500);mPagedHeadListView.setHeaderHeight(getResources().getDimensionPixelSize(R.dimen.header_height_test));//For the user to be able to listen for header ViewPager events.mPagedHeadListView.setOnHeaderPageChangeListener(ViewPager.OnPageChangeListener onPageChangeListener);mPagedHeadListView.setHeaderOffScreenPageLimit(int offScreenPageLimit);mPagedHeadListView.setIndicatorBgColor(int indicatorBgColor);mPagedHeadListView.setIndicatorColor(int indicatorColor);//If you want to disable vertical touch on header programatically.mPagedHeadListView.disableVerticalTouchOnHeader();mPagedHeadList.setIndicatorBgColor(getResources().getColor(R.color.material_green));mPagedHeadList.setIndicatorColor(getResources().getColor(R.color.material_light_green)); |
自定义属性
|
1
2
3
4
5
6
|
pagedheadlistview:headerHeight: Dimen resources allowed.pagedheadlistview:disableVerticalTouchOnHeader: Set it to true if you want the header to not be affected by verticall ListView scrolling.pagedheadlistview:indicatorBgColor: Color resource for indicator background.pagedheadlistview:indicatorColor: Color resource for indicator view.pagedheadlistview:indicatorType: Type for the indicator. Types allowed are: topAligned, bottomAligned, and none. If you set the value to none, no indicator will be included.pagedheadlistview:pageTransformer: You can set it to depth, zoomout, rotate, scale, flip, or accordion for using one of the stated ViewPager drag animations. |
使用自定义的pageTransformer
|
1
|
mPagedHeadListView.setHeaderPageTransformer(boolean reverseDrawingOrder, ViewPager.PageTransformer customPageTransformer);
|
posted on 2015-04-01 16:04 wasdchenhao 阅读(206) 评论(0) 收藏 举报

浙公网安备 33010602011771号