Skip to content

WenkaiZhou/Android-GridPagerView

Repository files navigation

GridViewPager

License mavenCentral MinSdk

让网格翻页开发变得更简单,配合dataBinding食用,真香!

示例图片

引入

androidX

implementation 'com.zwenkai:gridpagerview:2.0.1'

support[不再维护]

// Jcenter
implementation 'com.kevin:gridpagerview:1.0.1'

如何使用

在layout.xml 中配置GridViewPager

<com.kevin.gridpager.GridPagerView
    android:id="@+id/grid_pager"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:overScrollMode="never"/>

设置条目适配器

这里使用常用方式,推荐使用dataBinding的方式,参考demo中BindingCategoryAdapter

class CategoryAdapter : ClickableGridViewAdapter<Category, CommonCategoryAdapter.ViewHolder>() {

    override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder {
        val view = LayoutInflater.from(parent.context).inflate(R.layout.layout_common_category_item, parent, false)
        return ViewHolder(view)
    }

    override fun onBindViewHolder(holder: ViewHolder, position: Int, pagePosition: Int, item: Category) {
        super.onBindViewHolder(holder, position, pagePosition, item)
        holder.tvName.text = item.name
    }

    override fun onItemClick(view: View, item: Category, position: Int, pagePosition: Int) {
        Toast.makeText(view.context, "position = $position, pagePosition = $pagePosition, ${item.name}", Toast.LENGTH_SHORT).show()
    }

    class ViewHolder(itemView: View) :
        RecyclerView.ViewHolder(itemView) {
        var tvName: TextView = itemView.findViewById(R.id.tv_name)
    }
}

初始化 GridPagerView

gridPagerView.setGridViewAdapter(CategoryAdapter())
// 设置数据
val list: MutableList<Category> = mutableListOf()
for (i in 0 until count) {
    list.add(Category("item $i"))
}
gridPagerView.setDataItems(list)

更多配置

XML 配置

<com.kevin.gridpager.GridViewPager
    android:id="@+id/cate_page"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:overScrollMode="never"
    app:gvp_pageColumns="[列数]"
    app:gvp_pageRows="[行数]"/>

在代码中配置

// 设置单页列数
gridPagerView.setPageColumns(columns)
// 设置单页行数
gridPagerView.setPageRows(rows)
// 设置数据
gridPagerView.setDataItems(list)

License

Copyright (c) 2019 Kevin zhou

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

   http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

About

让网格翻页开发变得更简单

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages