MCPcopy Index your code
hub / github.com/crazysunj/CardSlideView

github.com/crazysunj/CardSlideView @v2.3.0

Chat with this repo
repository ↗ · DeepWiki ↗ · release v2.3.0 ↗ · + Follow
181 symbols 413 edges 17 files 35 documented · 19% updated 4y agov2.3.0 · 2020-11-29★ 3331 open issues
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

1.x

CardViewPager viewPager = (CardViewPager) findViewById(R.id.viewpager);
viewPager.bind(getSupportFragmentManager(), new MyCardHandler(), Arrays.asList(imageArray));
public class MyCardHandler implements CardHandler<String> {

    @Override
    public View onBind(final Context context, final String data, final int position) {
        View view = View.inflate(context, R.layout.item, null);
        ImageView imageView = (ImageView) view.findViewById(R.id.image);
        Glide.with(context).load(data).into(imageView);
        view.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Toast.makeText(context, "data:" + data + "position:" + position, Toast.LENGTH_SHORT).show();
            }
        });
        return view;
    }
}
//正常与卡片效果切换切换,请设置合理的值
private void switchNormal() {
    viewPager.setCardTransformer(0, 0);
    viewPager.setCardPadding(0);
    viewPager.setCardMargin(0);
    viewPager.notifyUI(CardViewPager.MODE_NORMAL);
}

private void switchCard() {
    viewPager.setCardTransformer(180, 0.38f);
    viewPager.setCardPadding(60);
    viewPager.setCardMargin(40);
    viewPager.notifyUI(CardViewPager.MODE_CARD);
}
// 获取当前下标
public int getCurrentIndex();

// 原setCurrentItem请用setCurrentIndex替代

// addOnPageChangeListener和setOnPageChangeListener回调position对应data,但data不能进行增删操作,如果要进行增删,请重新bind

详细介绍戳这里

具体参考demo

注意事项,实现Serializable的类其内嵌类也必须实现Serializable

public class A {
    B b;
    public static class B{}
}

如上,A和B都必须实现Serializable,如果不想序列化,可以在变量前面添加transient关键字,但是有小概率事件发生Activity被系统杀死重启异常问题,大家尽量不要提到成员变量处

gradle依赖

implementation 'com.crazysunj:cardslideview:1.4.2'
同时还需要依赖自己的v4包和cardview包

Extension points exported contracts — how you extend this code

PageTransformer (Interface)
这里不提供position,在滑动速度太快的情况是不准的,你下次通过view获取的position已经变了,但你使用的那一刻调用CardSlideView#getPosition(View)绝对是准的 @author su [6 implementers]
cardslideview/src/main/java/com/crazysunj/cardslideview/PageTransformer.java
CardHolder (Interface)
@author sunjian @date 2019-07-19 15:01 [2 implementers]
cardslideview/src/main/java/com/crazysunj/cardslideview/CardHolder.java
OnPageChangeListener (Interface)
用于监听滑动位置,规则如下: 模仿viewPager的滑动机制,如果是手指滑动,那么position都会回调,由于是pager机制,不存在惯性滑动 如果是参数滑动(指定某个位置),那么只会回调最后一个 @author sunjian @d [2 …
cardslideview/src/main/java/com/crazysunj/cardslideview/OnPageChangeListener.java
OnPageItemClickListener (Interface)
item点击事件,holder中设置无效 @author sunjian @date 2020/11/6 下午5:44 [2 implementers]
cardslideview/src/main/java/com/crazysunj/cardslideview/OnPageItemClickListener.java
OnPageScrollStateChangeListener (Interface)
@author sunjian @date 2020/10/29 上午11:46
cardslideview/src/main/java/com/crazysunj/cardslideview/OnPageScrollStateChangeListener.java

Core symbols most depended-on inside this repo

getOrientationHelper
called by 17
cardslideview/src/main/java/com/crazysunj/cardslideview/GalleryLayoutManager.java
getItemCount
called by 15
cardslideview/src/main/java/com/crazysunj/cardslideview/CardSlideView.java
getPosition
called by 8
cardslideview/src/main/java/com/crazysunj/cardslideview/CardSlideView.java
findCenterView
called by 7
cardslideview/src/main/java/com/crazysunj/cardslideview/GalleryLayoutManager.java
getState
called by 7
cardslideview/src/main/java/com/crazysunj/cardslideview/GalleryLayoutManager.java
dp2px
called by 6
app/src/main/java/com/crazysunj/cardslide/CircleLineIndicator.java
dispatchScrollState
called by 5
cardslideview/src/main/java/com/crazysunj/cardslideview/GalleryLayoutManager.java
stop
called by 5
app/src/main/java/com/crazysunj/cardslide/BannerView.java

Shape

Method 154
Class 22
Interface 5

Languages

Java100%

Modules by API surface

cardslideview/src/main/java/com/crazysunj/cardslideview/GalleryLayoutManager.java54 symbols
cardslideview/src/main/java/com/crazysunj/cardslideview/CardSlideView.java45 symbols
app/src/main/java/com/crazysunj/cardslide/MainActivity.java22 symbols
app/src/main/java/com/crazysunj/cardslide/BannerView.java21 symbols
app/src/main/java/com/crazysunj/cardslide/CircleLineIndicator.java7 symbols
app/src/main/java/com/crazysunj/cardslide/MyBean.java4 symbols
cardslideview/src/main/java/com/crazysunj/cardslideview/DefaultTransformer.java3 symbols
cardslideview/src/main/java/com/crazysunj/cardslideview/CardViewHolder.java3 symbols
cardslideview/src/main/java/com/crazysunj/cardslideview/CardHolder.java3 symbols
cardslideview/src/main/java/com/crazysunj/cardslideview/BitmapHelper.java3 symbols
app/src/main/java/com/crazysunj/cardslide/TestActivity.java3 symbols
app/src/main/java/com/crazysunj/cardslide/ScaleTransformer.java3 symbols

For agents

$ claude mcp add CardSlideView \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact