GalleryLayoutManager

使用 RecycleView 在 Android 中实现 ViewPager/Gallery 的新方法。「New way to implements ViewPager/Gallery in Android with RecycleView」

Github星跟蹤圖

GalleryLayoutManager

中文

A custom LayoutManager to build a Gallery or a ViewPager like RecyclerView that shows items in a center-locked and support both HORIZONTAL and VERTICAL scroll.And View Recycle Machine is also supported.

Screenshots

ViewPager

Demo

Usage

1、Build

Gradle

implementation 'github.hellocsl:GalleryLayoutManager:{latest-release-version}'

2、In your code

Basis Usage

Use GalleryLayoutManager#attach(RecycleView recycleView) to setup GalleryLayoutManager for your RecycleView instead of RecycleView#setLayoutManager(LayoutManager manager)

GalleryLayoutManager layoutManager = new GalleryLayoutManager(GalleryLayoutManager.HORIZONTAL);
//layoutManager.attach(mPagerRecycleView);  // default selected position is 0
layoutManager.attach(mPagerRecycleView, 30);

//...
//setup adapter for your RecycleView
mPagerRecycleView.setAdapter(imageAdapter);

Listen to selection change

layoutManager.setCallbackInFling(true);//should receive callback when flinging, default is false
layoutManager.setOnItemSelectedListener(new GalleryLayoutManager.OnItemSelectedListener() {
    @Override
    public void onItemSelected(RecyclerView recyclerView, View item, int position) {
        //.....
    }
});

Apply ItemTransformer just like ViewPager

Implements your ItemTransformer

public class ScaleTransformer implements GalleryLayoutManager.ItemTransformer {

    @Override
    public void transformItem(GalleryLayoutManager layoutManager, View item, float fraction) {
        item.setPivotX(item.getWidth() / 2.F);
        item.setPivotY(item.getHeight() / 2.F);
        float scale = 1 - 0.3F * Math.abs(fraction);
        item.setScaleX(scale);
        item.setScaleY(scale);
    }
}
// Apply ItemTransformer just like ViewPager
layoutManager.setItemTransformer(new ScaleTransformer());

License

Copyright [2017] [Hello Csl]

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.

主要指標

概覽
名稱與所有者BCsl/GalleryLayoutManager
主編程語言Java
編程語言 (語言數: 1)
平台
許可證Apache License 2.0
所有者活动
創建於2016-12-15 08:08:33
推送於2022-08-23 03:25:22
最后一次提交2021-09-28 16:26:51
發布數8
最新版本名稱v1.0.6 (發布於 )
第一版名稱push (發布於 )
用户参与
星數1k
關注者數15
派生數144
提交數27
已啟用問題?
問題數42
打開的問題數24
拉請求數2
打開的拉請求數2
關閉的拉請求數0
项目设置
已啟用Wiki?
已存檔?
是復刻?
已鎖定?
是鏡像?
是私有?