GithubHelp home page GithubHelp logo

mcxtzhang / zlayoutmanager Goto Github PK

View Code? Open in Web Editor NEW
2.5K 49.0 390.0 20.51 MB

Some custom LayoutManager .Such as SwipeCard、FLowLayout。一些自定义的LayoutManager,仿探探、人人影视 炫动滑动 卡片层叠 和流式布局等。

Home Page: http://blog.csdn.net/zxt0601/article/details/53730908

Java 100.00%
layoutmanager card cards itemtouchhelper flow-layout swipeable

zlayoutmanager's Introduction

LayoutManagerDemo

利用自定义LayoutManager 的一些实战实例。

相关博文:

流式布局

仿探探、人人影视 卡片层叠 炫动滑动布局

想经济上支持我 or 想通过视频看我是怎么实现的:

http://edu.csdn.net/course/detail/3956

If you like, point a star .Thank you very much!

喜欢随手点个star 多谢

在哪里找到我:

我的github:

https://github.com/mcxtzhang

我的CSDN博客:

http://blog.csdn.net/zxt0601

我的稀土掘金:

http://gold.xitu.io/user/56de210b816dfa0052e66495

我的简书:

http://www.jianshu.com/users/8e91ff99b072/timeline


效果一览:

仿探探、人人影视 卡片层叠 炫动滑动布局

探探皇帝翻牌子即视感

探探皇帝翻牌子即视感

人人美剧订阅界面

人人美剧订阅界面

可配置参数(同时显示6页):

人人美剧订阅界面

流式布局

这里写图片描述

艾玛,换成妹子图后貌似好看了许多,我都不认识它了,好吧,项目里它一般长下面这样:

这里写图片描述

往常这种效果,我们一般使用自定义ViewGroup实现,我以前也写了一个。自定义VG实现流式布局

使用:

Step 1. 在项目根build.gradle文件中增加JitPack仓库依赖。

    allprojects {
		repositories {
			...
			maven { url "https://jitpack.io" }
		}
	}

Step 2. Add the dependency

    dependencies {
	        compile 'com.github.mcxtzhang:ZLayoutManager:V1.1.0'
	}

Step 3. 仿探探、人人影视 卡片层叠 炫动滑动布局:

以后老板让你做这种效果,你只需要:

	mRv.setLayoutManager(new OverLayCardLayoutManager());
        CardConfig.initConfig(this);
        ItemTouchHelper.Callback callback = new RenRenCallback(mRv, mAdapter, mDatas);
        ItemTouchHelper itemTouchHelper = new ItemTouchHelper(callback);
        itemTouchHelper.attachToRecyclerView(mRv);

如果需要定制特殊的参数,例如显示6层:

		 CardConfig.MAX_SHOW_COUNT = 6;

设置仿探探竖直上下滑动,不删除Item。

水平方向判断误差阈值x:

        final TanTanCallback callback = new TanTanCallback(mRv, mAdapter, mDatas);
        callback.setHorizontalDeviation(x);

流式布局:

        mRv.setLayoutManager(new FlowLayoutManager());

刚建了个QQ搞基交流群: 557266366 里面现在没有人。 嗯,就这样吧。

使用的Adapter:

https://github.com/mcxtzhang/all-base-adapter

zlayoutmanager's People

Contributors

mcxtzhang avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

zlayoutmanager's Issues

建议

目前没有一个按钮 控制直接左右滑,还有就是还原上一个删除的

滑动Bug

当我的列表没有达到一屏时,滑动会闪屏

流式布局不起作用

我用了你写的流式布局,界面一片空白,找不到原因在那,Debug看了下,保存的Rect的好像有问题

slideLayoutManager的卡片有时候不太好滑出去

滑动卡片时,有时候卡片感觉很“顽固”,滑不出去,一般来讲,当手指不是水平滑动,而是带有纵向偏移的斜横向滑动时容易出现这种情况,请问如何让它变得“敏感”一些,就是一点水平偏移都可以让卡片滚动出去,希望大佬解答,谢谢。

FlowLayoutManager 当条目 match parent 时,上滑动时,闪退

感谢这个例子,在使用这个例子,发现了一个小问题:

感觉原因在顺序addChildView,设置 Rect 跳过了这块:

// 顺序addChildView
 // 计算宽度 包括margin
if (leftOffset + getDecoratedMeasurementHorizontal(child) <=
...

第二屏时,走:
// 新起一行的时候要判断一下边界
 if (topOffset - dy > getHeight() - getPaddingBottom()) {
             //越界了 就回收
            removeAndRecycleView(child, recycler);
            mLastVisiPos = i - 1;
}

这样导致了mItemRects 不完整,比如 1-8为第一屏,9-16,为第二屏,9 没有添加到 mItemRects

FlowLayoutManager数据不满屏的暂时解决办法

@OverRide
public int scrollVerticallyBy(int dy, RecyclerView.Recycler recycler, RecyclerView.State state)
{
//位移0、没有子View 当然不移动
if (dy == 0 || getChildCount() == 0)
{
return 0;
}
//以下是边界判断
if (getItemCount() == getChildCount()
&& getDecoratedTop(getChildAt(0)) >= 0
&& (getHeight() - getPaddingBottom()) >= getDecoratedBottom(getChildAt(getChildCount() - 1)))
{
return 0;
}
//.....//

下滑时覆盖其他控件

我看了一下,探探的卡片向下滑动时会覆盖掉其他 Button 等控件。
如果单纯用 LayoutManager 和 Callback 来实现的话, 卡片滑动到 RecyclerView 的边界以后就消失了。
用 Android Monitor 看了一下,探探的似乎是把下面的两个按钮跟可滑动的卡片放在一个重写的 ViewGroup 里面,并没有用 LayoutManager 来实现。

最美有物

楼主仿造的最美有物还没有完成啊,有很多的问题.再者反编译原有app之后发现并不是楼主的思路,想了很久也不知道楼主往下写下去的思路是什么?

报错了!!!!1

qq 20170221154606
qq 20170221154637
qq 20170221153826

再使用LayoutInflater加载布局时报错! 直接new的view却能行?
这是怎么回事?

大佬如果控制非顶层View 不可以滑动呢?

我们也要仿探探 但是我们的上下间距比较大 导致了手指可以触碰到其他非顶层的View 大佬 怎么限制住不让非顶层的滑动呢,这样会导致数据混乱 还有数据也是反过来的,demo 最顶层是8呢 不是第一个。

嵌套显示不完全

当recycleView嵌套recycleView时,外层的RecyclerView使用GridLayoutManager,嵌套的recycleView的流布局LayoutManager时,显示不完全,只显示一行,但是数据有很多

流式布局的那个 如果嵌套NestedScrollView recyclerview 高度就不能自适应了 不管写match 还是写wrap 高度都是一个item的高度了

<android.support.v4.widget.NestedScrollView
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical">

        <android.support.v7.widget.RecyclerView


            android:id="@+id/rv"
            android:layout_width="match_parent"
            android:layout_height="wrap_content">

        </android.support.v7.widget.RecyclerView>

    </LinearLayout>
</android.support.v4.widget.NestedScrollView>

将你的FlowLayoutManager用到我的布局中会出现onLayoutChildren被调用了多次的情况

代码一行未改,ImageView的图片是从网络上加载的,在上下滑动的时候,当出现之前未出现过的ImageView就会触发onLayoutChildren,触发后整个布局就会重新回到position(0)的位置,下次滑动到该位置就正常了,但是滑动到下一行新出现的ImageView还是会重新触发onLayoutChildren,又回到顶端了,这可能是什么原因呢?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.