翻翻git之---好看的卡片切换库 Swipecards

转载请注明出处:王亟亟的大牛之路

刚上班2,3天还没从放假的节奏中缓过来,总觉得懒洋洋的哈哈哈。

继续之前的介绍一些好用/有意思/有学习意义的干活给大家,今天是Swipecards

地址:https://github.com/Diolor/Swipecards

效果:

在国内的一些社交类的App中也见过类似的实现。


How to use?

Gradle:

dependencies {
    compile 'com.lorentzos.swipecards:library:X.X.X@aar'
}

Eclipse的话就要把源码都Copy进去了(还好东西不多)

简单的介绍下怎么使用

首先,在你的布局里面拽入这个控件

 <com.lorentzos.flingswipe.SwipeFlingAdapterView
        android:id="@+id/frame"
        android:background="#ffeee9e2"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        app:rotation_degrees="15.5"
        tools:context=".MyActivity" />

他有一些自定义的标签,像这样

 <declare-styleable name="SwipeFlingAdapterView">
        <attr name="SwipeFlingStyle" format="reference"/>
        <attr name="rotation_degrees" format="float"/>
        <attr name="min_adapter_stack" format="integer"/>
        <attr name="max_visible" format="integer"/>
    </declare-styleable>

都是一些对控件进行配置的,具体的属性大家可以看下源码,这里就不做解释了

接下来那我们就在事物的Activity里获取这个控件(这边是用依赖注入做的)

 @InjectView(R.id.frame) SwipeFlingAdapterView flingContainer;

再给我们的控件添加数据源

        al = new ArrayList<>();
        al.add("php");
        al.add("c");
        al.add("python");
        al.add("java");
        al.add("html");
        al.add("c++");
        al.add("css");
        al.add("javascript");

        arrayAdapter = new ArrayAdapter<>(this, R.layout.item, R.id.helloText, al );

        flingContainer.setAdapter(arrayAdapter);

添加控件的事件监听
当卡片被移除,无论左右都会触发removeFirstObjectInAdapter()

左边触发onLeftCardExit()

右边出发onRightCardExit()

没数据了调用onAdapterAboutToEmpty()

滑动的过程中调用onScroll()

 flingContainer.setFlingListener(new SwipeFlingAdapterView.onFlingListener() {
            @Override
            public void removeFirstObjectInAdapter() {
                // this is the simplest way to delete an object from the Adapter (/AdapterView)
                Log.d("LIST", "removed object!");
                al.remove(0);
                arrayAdapter.notifyDataSetChanged();
            }

            @Override
            public void onLeftCardExit(Object dataObject) {
                //Do something on the left!
                //You also have access to the original object.
                //If you want to use it just cast it (String) dataObject
                makeToast(MyActivity.this, "Left!");
            }

            @Override
            public void onRightCardExit(Object dataObject) {
                makeToast(MyActivity.this, "Right!");
            }

            @Override
            public void onAdapterAboutToEmpty(int itemsInAdapter) {
                // Ask for more data here
                al.add("XML ".concat(String.valueOf(i)));
                arrayAdapter.notifyDataSetChanged();
                Log.d("LIST", "notified");
                i++;
            }

            @Override
            public void onScroll(float scrollProgressPercent) {
                View view = flingContainer.getSelectedView();
                view.findViewById(R.id.item_swipe_right_indicator).setAlpha(scrollProgressPercent < 0 ? -scrollProgressPercent : 0);
                view.findViewById(R.id.item_swipe_left_indicator).setAlpha(scrollProgressPercent > 0 ? scrollProgressPercent : 0);
            }
        });

还支持点击时间(就是没有滑,单纯的点)

  flingContainer.setOnItemClickListener(new SwipeFlingAdapterView.OnItemClickListener() {
            @Override
            public void onItemClicked(int itemPosition, Object dataObject) {
                makeToast(MyActivity.this, "Clicked!");
            }
        });

    }

源码在最上面的连接里有!!!

谢谢!!!

时间: 2024-07-28 15:16:08

翻翻git之---好看的卡片切换库 Swipecards的相关文章

git 创建远程分支的本地代码库

问题描述 git 创建远程分支的本地代码库 远程有分支origin/v3.0,在创建本地代码库的时候. 1.本地: git checkout v3.0 2.本地: git checkout -b v3.0 git reset --hard origin/v3.0 1和2的效果有区别吗? 解决方案 git checkout v3.0 这个只是切换,前提是已经创建了 git checkout -b v3.0 这个是在当前的分支下创建另一个分支并切换过去,至于内部原理 ,应该都一样 只是这样更方便些操

android git repo-repo 与 git的基本操作以及建立代码库

问题描述 repo 与 git的基本操作以及建立代码库 我从供应商那里拿到了一套repo的代码库,现在要把它放到自己的服务器上,让其他人可以进行开发,现在的问题是不知道怎样在服务器上建立这个库?怎么更改url?希望能提供一些思路或者资料,谢谢!

git内容推送到远程库时一直停留在如下界面,求高手指点

问题描述 git内容推送到远程库时一直停留在如下界面,求高手指点 解决方案 协议错误吧 看不太清楚 解决方案二: 问题已经解决 协议错误

Git 2.8改进子版本库、身份处理和Windows支持

近日发布的Git 2.8带来了许多新特性.改进和Bug修复.其中,最值得注意的是子版本库并行获取.Git用户身份处理方式改进以及更好的Windows支持. 子版本库并行获取允许一次获取多个版本库,旨在减少获取版本库及其所有相关子版本库所需的时间.这可以通过使用新增的--jobs选项来实现,例如: git fetch --recurse-submodules --jobs=4 据Git团队介绍,对于包含许多子版本库的版本库,这可以大大增加更新速度.当使用--recurse-submodules而不

git分支的创建、切换、合并及删除操作小结_相关技巧

一.查看现存分支 查看现存分支 : git branch命令; git branch 从结果可以看出, 现在只有一个分支master; 二.创建分支 创建分支 : git branch 分之名称, 就可以创建一个分支, 创建完分支以后可以查看分支, 当前使用的分支会显示成为绿色, 前面带有 "*" , 如果不是当前使用的分支, 显示的是白色, 并且没有 "*" 前缀; git branch branch1 三.切换分支 切换分支 : git checkout 分支名

翻翻git之---RecycleView的上拉,下拉刷新,样式切换,添加foot和header的强大库 RecyclerViewManager

转载请注明出处王亟亟的大牛之路 前两天写了一个上拉刷新的,今天看到个上下拉都可刷新还实现了foot 和header以及3种RecycleView样式的切换就给大家介绍下,先贴下foot部分因为实例中并没加入foot 这部图片大小 没搞好 再贴一下2个刷新的效果 因为作者是中国人,所以实现原理他写了一个很好的解释文章,这边就不罗嗦了看传送门:http://z.sye.space/2015/11/23/RecyclerViewManager/ how to use? Grade: allprojec

翻翻git之---实用的欢迎页开源库 AppIntro

转载请注明出处:王亟亟的大牛之路 今天没有P1,直接进入正题 今天上的是一个帅帅的app滑动介绍页 .为什么说帅? 作者对自己的内容是这么定义的 Make a cool intro for your Android app. 那我们来看看是怎么个效果 那么除了滑动还可以有别的操作么? 可以,看下面 灰色的那些Button都是可以点击的,整个视图的SKIP啊 next也是可以隐藏的,也就是说 这个 View是活的,并不是什么一个背景一堆字完事 How to use? Gradle: reposit

翻翻git之---基于universalimageloader实现的图片加载控件BlurImageView

转载请注明出处:王亟亟的大牛之路 昨天做了个梦,梦醒后觉得还是要更努力的学习,所以不多说废话,直接上货. BlurImageView 效果图: 流程: 实现原理,加载2张图片一张为很小的缩略图,一张为原图,缩略图加载完后做放大模糊处理,然后展开进度条加载原图,原图加载成功后替换缩略图. How to use? Grade: dependencies { compile 'com.wingjay:blurimageviewlib:1.1.0' } Eclipse: lib目录下面的3各类Copy进

翻翻git之---实现下拉到底刷新RecycleView InfiniteScroll

转载请注明出处:王亟亟的大牛之路 因为今天还有点工作上的事没做完,所以就不吹B了,介绍完库写完解释就吃饭去了,下午还要干活呢 InfiniteScroll 在传统的ListView李有PullToFressh做下拉刷新之类的实现,今天上一个类似的效果InfiniteScroll,不过他是寄存在RecycleView下的更符合发展趋势 效果图: 拉到底就加在更多出现Dialog的效果,使用场景很多 how to use? Grade: dependencies { compile 'com.git