├── .gitignore ├── README.md ├── build.gradle ├── example ├── build.gradle ├── doc │ ├── 1.png │ ├── 2.png │ └── 3.png └── src │ ├── androidTest │ └── java │ │ └── net │ │ └── masonliu │ │ └── resproguard │ │ └── ApplicationTest.java │ └── main │ ├── AndroidManifest.xml │ ├── java │ └── net │ │ └── masonliu │ │ └── gridviewpager │ │ └── demo │ │ ├── MainActivity.java │ │ └── MyGridViewAdapter.java │ └── res │ ├── layout │ ├── activity_main.xml │ └── gridview_item.xml │ ├── mipmap-xxxhdpi │ └── ic_launcher.png │ └── values │ ├── colors.xml │ ├── dimens.xml │ ├── strings.xml │ └── styles.xml ├── gradle.properties ├── gradle └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat ├── library ├── build.gradle └── src │ ├── androidTest │ └── java │ │ └── net │ │ └── masonliu │ │ └── gridviewpager │ │ └── ApplicationTest.java │ └── main │ ├── AndroidManifest.xml │ ├── java │ └── net │ │ └── masonliu │ │ └── gridviewpager │ │ ├── GridViewPager.java │ │ ├── GridViewPagerAdapter.java │ │ ├── GridViewPagerDataAdapter.java │ │ └── WrapContentGridView.java │ └── res │ └── values │ └── strings.xml └── settings.gradle /.gitignore: -------------------------------------------------------------------------------- 1 | /.idea 2 | /.gradle 3 | /local.properties 4 | /build 5 | /app/fabric.properties 6 | /*/build 7 | *.apk 8 | *.iml 9 | 10 | # Eclipse project files 11 | .classpath 12 | .project 13 | /.settings 14 | 15 | # OSX files 16 | .DS_Store 17 | .DS_Store? 18 | 19 | # Windows thumbnail db 20 | ehthumbs.db 21 | Thumbs.db 22 | 23 | # OS-specific files 24 | ._* 25 | .Spotlight-V100 26 | .Trashes 27 | 28 | # Log Files 29 | *.log 30 | 31 | #mybuild.gradle 32 | app/mybuild.gradle 33 | app/mybuildscript.gradle -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # GridViewPager 2 | 3 | GridView in ViewPager 4 | 5 | 6 | 7 | 8 | 9 | #Usage: 10 | example: 11 | ```java 12 | protected void onCreate(Bundle savedInstanceState) { 13 | super.onCreate(savedInstanceState); 14 | setContentView(R.layout.activity_main); 15 | final List list= Arrays.asList(mStrs); 16 | mViewPager = (GridViewPager) findViewById(R.id.myviewpager); 17 | mViewPager.setGridViewPagerDataAdapter(new GridViewPagerDataAdapter(list, 2, 4) { 18 | @Override 19 | public BaseAdapter getGridViewAdapter(List currentList,int pageIndex) { 20 | return new MyGridViewAdapter(getApplicationContext(), currentList); 21 | } 22 | 23 | @Override 24 | public void onItemClick(AdapterView parent, View view, int position, long id, int pageIndex) { 25 | 26 | } 27 | }); 28 | } 29 | ``` 30 | ```java 31 | repositories { 32 | maven { 33 | url "https://jitpack.io" 34 | } 35 | } 36 | 37 | dependencies { 38 | compile 'com.github.MasonLiuChn:GridViewPager:1.0.3' 39 | } 40 | ``` 41 | 42 | #Contact me: 43 | 44 | Blog:http://blog.csdn.net/masonblog 45 | 46 | Email:MasonLiuChn@gmail.com 47 | 48 | #License: 49 | Copyright 2013 MasonLiu, Inc. 50 | 51 | Licensed under the Apache License, Version 2.0 (the "License"); 52 | you may not use this file except in compliance with the License. 53 | You may obtain a copy of the License at 54 | 55 | http://www.apache.org/licenses/LICENSE-2.0 56 | 57 | Unless required by applicable law or agreed to in writing, software 58 | distributed under the License is distributed on an "AS IS" BASIS, 59 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 60 | See the License for the specific language governing permissions and 61 | limitations under the License. 62 | 63 | 64 | -------------------------------------------------------------------------------- /build.gradle: -------------------------------------------------------------------------------- 1 | // Top-level build file where you can add configuration options common to all sub-projects/modules. 2 | 3 | buildscript { 4 | repositories { 5 | jcenter() 6 | } 7 | dependencies { 8 | classpath "com.android.tools.build:gradle:1.3.0" 9 | } 10 | } 11 | 12 | allprojects { 13 | repositories { 14 | jcenter() 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /example/build.gradle: -------------------------------------------------------------------------------- 1 | apply plugin: 'com.android.application' 2 | 3 | android { 4 | compileSdkVersion 22 5 | buildToolsVersion "22.0.1" 6 | 7 | defaultConfig { 8 | applicationId "net.masonliu.gridviewpager.demo" 9 | minSdkVersion 10 10 | targetSdkVersion 22 11 | versionCode 1 12 | versionName "1.0" 13 | } 14 | 15 | lintOptions { 16 | abortOnError false 17 | } 18 | } 19 | 20 | dependencies { 21 | compile fileTree(dir: 'libs', include: ['*.jar']) 22 | compile 'com.android.support:appcompat-v7:22.2.1' 23 | compile project(':library') 24 | } 25 | 26 | 27 | 28 | 29 | -------------------------------------------------------------------------------- /example/doc/1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/damonliuchn/GridViewPager/51bdd4474a6be3c4ffec80c6ce94040c4ebc25cb/example/doc/1.png -------------------------------------------------------------------------------- /example/doc/2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/damonliuchn/GridViewPager/51bdd4474a6be3c4ffec80c6ce94040c4ebc25cb/example/doc/2.png -------------------------------------------------------------------------------- /example/doc/3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/damonliuchn/GridViewPager/51bdd4474a6be3c4ffec80c6ce94040c4ebc25cb/example/doc/3.png -------------------------------------------------------------------------------- /example/src/androidTest/java/net/masonliu/resproguard/ApplicationTest.java: -------------------------------------------------------------------------------- 1 | package net.masonliu.resproguard; 2 | 3 | import android.app.Application; 4 | import android.test.ApplicationTestCase; 5 | 6 | /** 7 | * Testing Fundamentals 8 | */ 9 | public class ApplicationTest extends ApplicationTestCase { 10 | public ApplicationTest() { 11 | super(Application.class); 12 | } 13 | } -------------------------------------------------------------------------------- /example/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 11 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /example/src/main/java/net/masonliu/gridviewpager/demo/MainActivity.java: -------------------------------------------------------------------------------- 1 | package net.masonliu.gridviewpager.demo; 2 | 3 | import android.app.Activity; 4 | import android.os.Bundle; 5 | import android.view.View; 6 | import android.widget.AdapterView; 7 | import android.widget.BaseAdapter; 8 | 9 | import net.masonliu.gridviewpager.GridViewPager; 10 | import net.masonliu.gridviewpager.GridViewPagerDataAdapter; 11 | 12 | import java.util.Arrays; 13 | import java.util.List; 14 | 15 | /** 16 | * Created by liumeng on 10/30/15. 17 | */ 18 | public class MainActivity extends Activity { 19 | 20 | private String[] mStrs = new String[]{"01", "02", "03", "04", "05", "06", 21 | "07", "08", "09", "10", "11", "12", "13", "14", "15", "16", "17", 22 | "18", "19", "20", "21", "22", "23", "24", "25", "26", "27", "28", 23 | "29", "30", "31", "32", "33", "34", "35", "36", "37", "38", "39", 24 | "40", "41", "42", "43", "44", "45", "46", "47", "48", "49", "50", 25 | "51", "52", "53", "54", "55", "56", "57", "58", "59", "60"}; 26 | 27 | private GridViewPager mViewPager; 28 | @Override 29 | protected void onCreate(Bundle savedInstanceState) { 30 | super.onCreate(savedInstanceState); 31 | setContentView(R.layout.activity_main); 32 | final List list= Arrays.asList(mStrs); 33 | mViewPager = (GridViewPager) findViewById(R.id.myviewpager); 34 | mViewPager.setGridViewPagerDataAdapter(new GridViewPagerDataAdapter(list, 2, 4) { 35 | @Override 36 | public BaseAdapter getGridViewAdapter(List currentList,int pageIndex) { 37 | return new MyGridViewAdapter(getApplicationContext(), currentList); 38 | } 39 | 40 | @Override 41 | public void onItemClick(AdapterView parent, View view, int position, long id, int pageIndex) { 42 | 43 | } 44 | }); 45 | } 46 | } 47 | -------------------------------------------------------------------------------- /example/src/main/java/net/masonliu/gridviewpager/demo/MyGridViewAdapter.java: -------------------------------------------------------------------------------- 1 | package net.masonliu.gridviewpager.demo; 2 | 3 | import android.content.Context; 4 | import android.view.LayoutInflater; 5 | import android.view.View; 6 | import android.view.ViewGroup; 7 | import android.widget.BaseAdapter; 8 | import android.widget.Button; 9 | 10 | import java.util.List; 11 | 12 | public class MyGridViewAdapter extends BaseAdapter { 13 | 14 | private Context mContext; 15 | private List mLists; 16 | 17 | public MyGridViewAdapter(Context pContext, List mLists) { 18 | this.mContext = pContext; 19 | this.mLists = mLists; 20 | 21 | } 22 | 23 | @Override 24 | public int getCount() { 25 | 26 | return mLists.size(); 27 | } 28 | 29 | @Override 30 | public Object getItem(int position) { 31 | 32 | return mLists.get(position); 33 | } 34 | 35 | @Override 36 | public long getItemId(int position) { 37 | return position; 38 | } 39 | 40 | @Override 41 | public View getView(final int position, View convertView, ViewGroup parent) { 42 | 43 | Holder holder = null; 44 | if (null == convertView) { 45 | holder = new Holder(); 46 | LayoutInflater mInflater = LayoutInflater.from(mContext); 47 | convertView = mInflater.inflate(R.layout.gridview_item, null); 48 | holder.btn_gv_item = (Button) convertView.findViewById(R.id.btn_gv_item); 49 | holder.btn_gv_item.setFocusable(false); 50 | convertView.setTag(holder); 51 | } else { 52 | holder = (Holder) convertView.getTag(); 53 | } 54 | holder.btn_gv_item.setText(mLists.get(position)); 55 | 56 | return convertView; 57 | } 58 | 59 | private static class Holder { 60 | Button btn_gv_item; 61 | } 62 | 63 | } 64 | -------------------------------------------------------------------------------- /example/src/main/res/layout/activity_main.xml: -------------------------------------------------------------------------------- 1 | 5 | 6 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /example/src/main/res/layout/gridview_item.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 |