用自定义 LayoutManager 实现 Android 中 Gallery 或者 ViewPager 控件的效果,支持 RecycleView 的试图回收机制

GalleryLayoutManager

项目地址:BCsl/GalleryLayoutManager 

简介:用自定义 LayoutManager 实现 Android 中 Gallery 或者 ViewPager 控件的效果,支持 RecycleView 的试图回收机制

标签:ViewPager-Gallery-RecycleView-LayoutManager-viewpagerd的另一种实现-

中文

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

compile 'github.hellocsl:GalleryLayoutManager:{lastest-release-version}'

Be care :if you have used RecyclerView in your project , maybe your should use this library as below and your recyclerview-v7 requires API level 24.2.0 or higher

compile ('github.hellocsl:GalleryLayoutManager:{lastest-release-version}'){
    exclude group: 'com.android.support', module:'recyclerview-v7'
}

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

layoutManager2.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.0f);
        float scale = 1 - 0.3f * Math.abs(fraction);
        item.setScaleX(scale);
        item.setScaleY(scale);
    }
}
// Apply ItemTransformer just like ViewPager
layoutManager.setItemTransformer(new ScaleTransformer());
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值