Giter Site home page Giter Site logo

luckybilly / smartswipe Goto Github PK

View Code? Open in Web Editor NEW
2.1K 2.1K 261.0 18.05 MB

An android library to make swipe more easier and more powerful. Android各种侧滑,有这一个就够了

Home Page: https://juejin.im/post/5d3fdc3af265da03c02bdbde

License: Apache License 2.0

Java 99.95% Shell 0.05%
cover customer-view door drawer refreshlayout shutters slidingmenu swipe swipeback swipebacklayout

smartswipe's Introduction

GitHub stats

smartswipe's People

Contributors

asiontang avatar luckybilly 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

smartswipe's Issues

Running Leakcanary will be crashed by app use SmartSwipe

Dear billy,
I use Leakcanary to check app memory leak. But if app use SmartSwipe, when exit app and open Leakcanary , it will be crashed.
The logcat info below:
com.billy.android.swipe.demo:leakcanary E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.billy.android.swipe.demo:leakcanary, PID: 18929
java.lang.ClassCastException: com.billy.android.swipe.SmartSwipeWrapper$LayoutParams cannot be cast to com.android.internal.widget.ActionBarOverlayLayout$LayoutParams
at com.android.internal.widget.ActionBarOverlayLayout.applyInsets(ActionBarOverlayLayout.java:290)
at com.android.internal.widget.ActionBarOverlayLayout.onMeasure(ActionBarOverlayLayout.java:436)
at android.view.View.measure(View.java:19734)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6120)
at android.widget.FrameLayout.onMeasure(FrameLayout.java:185)
at com.android.internal.policy.DecorView.onMeasure(DecorView.java:687)
at android.view.View.measure(View.java:19734)
at android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:2271)
at android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:1358)
at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1607)
at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1246)
at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:6301)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:871)
at android.view.Choreographer.doCallbacks(Choreographer.java:683)
at android.view.Choreographer.doFrame(Choreographer.java:619)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:857)
at android.os.Handler.handleCallback(Handler.java:751)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6077)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:866)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:756)

Would you like to help to fix it?
Thanks

关于activity背景色问题

你好,我在Theme中给background设置一个颜色,在activitySlidingBack时不能显示上一个activity内容,只有当完全返回时才显示activity内容。

view在scrollview中且scrollview中内容较多能滑动时,上下滑动不流畅!!

问题描述

view在scrollview中且scrollview中内容较多能滑动时,上下滑动不流畅!!

  • 预期行为:希望有Demo中的体验。Demo中虽然是在ScrollView中,但是内容不多,不能滑动。

  • 实际行为:上下滑动不流畅,偶尔能滑动

出问题的代码

mSmartSwipeWrapper
        .addConsumer(new SlidingConsumer())
        .setRelativeMoveFactor(SlidingConsumer.FACTOR_FOLLOW);

当前使用的SmartSwipe版本号:

1.1.2

在Dialog弹出一瞬间侧滑返回,会闪屏

问题描述

请描述您遇到的问题
仿微信效果的侧滑返回方式,在Dialog.show()方法调后,立即侧滑,屏幕会花屏。这个问题在SwipeBackHelper库也存在。

出问题的代码

SmartSwipeBack.activitySlidingBack(this, new ActivitySwipeBackFilter() {
@OverRide
public boolean onFilter(Activity activity) {
return true;
}
});

当前使用的SmartSwipe版本号:1.0.8

如何复现?(如果能在demo中复现将有利于作者尽快修复问题)

在Dialog.show()方法调后,还未真正弹出之前,立即侧滑

截图或gif

(提交issue前请删除本行文字)有时候,一图胜千言,为了更高效的沟通,请将您认为有助于说明问题的截图或者gif图片贴在此处吧!

微信图片_20191129160206

提交issue前请删除以下内容 <<<<<<<<<<<<<<<

=========== 小贴士 ============

将图片贴到issue中有以下几种方式:

  1. 复制图片后,在issue文本输入框中Ctrl + V (mac: command + V)粘贴,github会自动上传图片并添加为其markdown格式
  2. 从文件夹中拖动图片到issue的文本输入框中,效果同上
  3. 如果是一个在线图片,可在issue输入框中输入图片地址,markdown格式为: 图片的描述

关于drawerConsumer的滑动拦截问题

问题描述

drawerConsumer缺少禁用滑动的功能,我在抽屉里面放了一个摇杆,当我进行上下控制摇杆时,拖不动摇杆,只会上拉或者下拉抽屉。

请描述您遇到的问题

  • 预期行为:可以正确拖动摇杆而不会被抽屉拦截

  • 实际行为:只能滑动抽屉,摇杆的上下移动被拦截了,左右移动可以触发。
    04B9858721502F508DA30D05AD68F84520203131456381

关于上拉drawConsumer问题咨询

你好我用drawConsumer里面嵌套了一个NestedScrollView 但是上拉有时候NestedScrollView不滚动然后抽屉下面会出现一段空白被网上拉出来了一部分,请问怎么处理?如图
QQ图片20190809175020

底部导航栏会覆盖在页面上方

你好, 在带有系统底部导航栏的手机上,使用SmartSwipe库后,会出现导航栏覆盖在页面上。
实际效果应该是页面在系统导航栏的上方

java.lang.ArrayIndexOutOfBoundsException

问题描述

1 com.billy.android.swipe.internal.b.b(SourceFile:823)

2 com.billy.android.swipe.SmartSwipeWrapper.onTouchEvent(SourceFile:81)
3 android.view.View.dispatchTouchEvent(View.java:12527)
4 android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3026)
5 android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2705)
6 com.billy.android.swipe.SmartSwipeWrapper.dispatchTouchEvent(SourceFile:60)
7 android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3032)
8 android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2719)
9 android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3032)
10 android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2719)
11 com.android.internal.policy.DecorView.superDispatchTouchEvent(DecorView.java:444)
12 com.android.internal.policy.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1835)
13 android.app.Activity.dispatchTouchEvent(Activity.java:3465)
14 com.android.internal.policy.DecorView.dispatchTouchEvent(DecorView.java:402)
15 android.view.View.dispatchPointerEvent(View.java:12768)
16 android.view.ViewRootImpl$ViewPostImeInputStage.processPointerEvent(ViewRootImpl.java:5230)
17 android.view.ViewRootImpl$ViewPostImeInputStage.onProcess(ViewRootImpl.java:5030)
18 android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:4545)
19 android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:4598)
20 android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:4564)
21 android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:4704)
22 android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:4572)
23 android.view.ViewRootImpl$AsyncInputStage.apply(ViewRootImpl.java:4761)
24 android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:4545)
25 android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:4598)
26 android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:4564)
27 android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:4572)
28 android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:4545)
29 android.view.ViewRootImpl.deliverInputEvent(ViewRootImpl.java:7263)
30 android.view.ViewRootImpl.doProcessInputEvents(ViewRootImpl.java:7232)
31 android.view.ViewRootImpl.enqueueInputEvent(ViewRootImpl.java:7193)
32 android.view.ViewRootImpl$WindowInputEventReceiver.onInputEvent(ViewRootImpl.java:7369)
33 android.view.InputEventReceiver.dispatchInputEvent(InputEventReceiver.java:247)
34 android.os.MessageQueue.nativePollOnce(Native Method)
35 android.os.MessageQueue.next(MessageQueue.java:326)
36 android.os.Looper.loop(Looper.java:165)
37 android.app.ActivityThread.main(ActivityThread.java:6810)
38 java.lang.reflect.Method.invoke(Native Method)
39 com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:547)
40 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:873)

出问题的代码

使用的代码

  SmartSwipeBack.activitySlidingBack(this, new SmartSwipeBack.ActivitySwipeBackFilter() {
            @Override
            public boolean onFilter(Activity activity) {
                //根据传入的activity,返回true代表需要侧滑返回;false表示不需要侧滑返回
                return !(activity instanceof VZyMainActivity);
            }
        });

当前使用的SmartSwipe版本号:

1.0.6

线上产品使用后,上报的错误。

Activity相关的侧滑,第一次滑动不够灵敏

在Activity中使用ActivitySlidingBackConsumer时,第一次侧滑返回,手指滑动了半个屏幕,Activity才刚开始向右滑动。如果停留在这个页面,再进行第二次、第三次滑动的话,就比较灵敏了。请问这个有什么解决办法吗?

嵌套在CoordinatorLayout中会导致滑动分发很混乱,但是使用SmartRefresh的lib不会

问题描述

AndroidX使用类似微博个人主页效果时,嵌套CoordinatorLayout+AppBarLayout+CollapsingToolbarLayout+MaterialToolbar+ViewPager+SmartSwipeRefresh+RecyclerView内部下拉刷新,出现滑动分发混乱(尤其是上滑动的时候,不触发header的向上滚动)

当前使用的SmartSwipe版本号:

Androidx的版本com.billy.android:smart-swipe:1.0.0

SmartSwipeRefresh的截图(使用安卓X)

GIF1

SmartRefreshLayout的截(没有使用安卓X)

GIF2

在fragment中使用抽屉效果出现的问题

问题描述

使用版本 1.1.2
请描述您遇到的问题

我先说我页面的布局结构:
MainActivity中 从上到下, 分别是一个NoScrollViewPager包装5个Fragment,
底部是BottomNavigationView作为切换Fragment的功能按钮.

我的需求:
[只]在第一个fragment中, 从左往右侧滑, 需要拉出来一个抽屉布局, 这个布局要全屏 (遮挡MainActivity的一切, 包括Mainactivity下方的BottomNavigationView), 其他的fragment中侧滑不能拉出此布局.

我的做法:
我在第一个Fragment 的 onCreateView中,

View drawerView = LayoutInflater.from(view.getContext()).inflate(R.layout.nav_header_main, container, false);     
        final DrawerConsumer drawerConsumer = new DrawerConsumer();
        drawerConsumer.setLeftDrawerView(drawerView);

        final SwipeConsumer swipeConsumer = SmartSwipe.wrap(getActivity())
                .addConsumer(drawerConsumer)    //抽屉效果
                //可以设置横向(左右两侧)的抽屉为同一个view ,也可以为不同方向分别设置不同的view
                .setHorizontalDrawerView(drawerView)
                .setScrimColor(0x2F000000)      //设置遮罩的颜色
                .setShadowColor(0xFFDDDDDC)     //设置边缘的阴影颜色
                //.setSensitivity(0.1f);        //灵敏度,数值越大越灵敏
                .setEdgeSize(0);                //在控件边缘处一定范围内才能触发, 若为0,表示在整个控件区域都可触发

这样做是没问题的, 在第一个Fragment中, 侧滑确实能拉出来drawerView, 在其他Fragment中不能拉出此布局.

但是需求说, 在第一个Fragment中拉出布局的手势范围有点太大了, 我就:

 .setEdgeSize(100);                //在控件边缘处一定范围内才能触发, 若为0,表示在整个控件区域都可触发

这样做, 在第一个Fragment中左侧边缘才能拉出drawerView, 但是问题出现了:
我点击BottomNavigationView切换到其他Fragment, 在其他Fragment中左边侧滑, 也能拉出来这个drawerView...

我的问题:
我不想在其他Fragment中侧滑拉出来这个drawerView, 求教解决办法...

requestWindowFeature 和库冲突

问题描述

super.onCreate(savedInstanceState) 后面调用requestWindowFeature()崩溃
请描述您遇到的问题
Window feature must be requested before adding content

  • 预期行为:
    不崩溃
  • 实际行为:
    崩溃 ,应该是这里冲突了 自己写的代码部分还好 ,第三方如果调用了requestWindowFeature就尴尬了 ,大佬看空了能不能修复哈

屏幕截图  2020-03-09 下午03 41 23

侧滑菜单无法从屏幕边缘关闭

问题描述

侧滑菜单无法从屏幕边缘关闭

  • 预期行为:

从屏幕边缘滑动就能关闭侧滑菜单

  • 实际行为:

现在只能在菜单边缘滑动执行

出问题的代码

        //初始化侧滑菜单
        int size = SmartSwipe.dp2px(300,this);

        View horizontalMenu = LayoutInflater.from(this).inflate(R.layout.fragment_my, null);
//        horizontalMenu.setClickable(true);
        initSlideMenu(horizontalMenu);
        horizontalMenu.setLayoutParams(new ViewGroup.LayoutParams(size, ViewGroup.LayoutParams.MATCH_PARENT));

        mDrawerConsumer = new DrawerConsumer()
                //horizontal menu
                .setHorizontalDrawerView(horizontalMenu)
                //set the translucent color of scrim (default is 0:transparent)
                .setScrimColor(0x7F000000)
                //set the shadow color follow the drawer while swiping (default is 0:transparent)
                .setShadowColor(0x80000000)
                .setShadowSize(SmartSwipe.dp2px(10, this))
                //set edge size to swipe to 20dp (default is 0: whole range of the contentView bounds)
                .setEdgeSize(SmartSwipe.dp2px(20, this))
                .as(DrawerConsumer.class);

        mSwipeConsumer = SmartSwipe.wrap(this).addConsumer(mDrawerConsumer);

当前使用的SmartSwipe版本号:

1.0.6

如何复现?(如果能在demo中复现将有利于作者尽快修复问题)

demo滑动正常

截图或gif

https://felixcode-1251939713.cos.ap-beijing.myqcloud.com/gifeditor_20190927_165949.gif

1.0.1 -- App底部导航栏消失

SmartSwipe 1.0.1
红米5
Android版本8.1
底部导航栏消失
baseapplication 设置了仿微信侧滑
1-- SmartSwipeBack.activitySlidingBack(this, null, 0,
ContextCompat.getColor(this, R.color.transparent), 0x80000000.toInt(), 30, 0.5f, 1)
2-- 左侧 屏幕中间部分 正常 屏幕 上/下 1/3部分 遮罩白屏了

SmartSwipe users

如果您使用了SmartSwipe ,非常感谢您的支持,欢迎留下App名称和公司(/组织)名称,您的回复将会给作者维护开源项目带来更多动力,同时也会成为观望者的信心来源。

推荐回复格式:

- App名称:

- 用到的功能有:

- 公司或组织:

- 链接:

We appreciate you support if you or your organization is using SmartSwipe. You are welcome to leave replies about your app name and organization here, which could became the confidence of undecided watchers.

Recommended reply format:

- App Name:
- Which Features been used?: (optional)
- Company or Organization Name: (optional)
- Home Page Url: (optional)

关于SpaceConsumer

仔细对比了下QQ的OverScroll效果,发现在使用SpaceConsumer时,多次触发滑动事件,比如:连续上下两次滑动,会有动画阻塞的情况发生,稍微有点不流畅,希望能够优化下。

如何修改触碰范围

问题描述

请描述您遇到的问题

  • 预期行为:Activity是上方一个播放器,下方剩下的区域是Fragment,就跟大部分视频软件一样。预期状况是只有在下方Fragment区域触碰右滑才有反应,在上方播放器则不反应(避免与播放器快进快退手势冲突),在下方Fragment区域往右滑动时,一样整个Activity往右滑掉关闭。如何才能覆写滑动的触碰范围?

  • 实际行为:使用的是ActivitySlidingBackConsumer,不做任何处理的话就是整面触碰都能滑动,尝试了setHeight,只是似乎没有用

当前使用的SmartSwipe版本号:

例如: 1.1.2

image

关于侧滑菜单

问题描述

侧滑菜单展开时可以点击后面的activity,后面的控件还能接受点击事件

  • 预期行为:
    后面activity不再响应事件
  • 实际行为:
    现在后面的activity还能响应点击事件

出问题的代码

       mSwipeConsumer.smoothLeftOpen();正常展开后mainactivity还能捕捉到点击事件

当前使用的SmartSwipe版本号:

1.0.4

截图或gif

gif截图

你好,非常感谢阁下的库。刚在做侧滑删除功能时,参考你的SlidingConsumerActivity,配合RecyclerView使用时,拿到viewHolder.itemView之后设置setOnClickListener无效果

你好,非常感谢阁下的库。刚在做侧滑删除功能时,参考你的SlidingConsumerActivity,配合RecyclerView使用时,拿到viewHolder.itemView之后设置setOnClickListener无效果

我的demo中是以BaseRecyclerViewAdapterHelper作为adepter的,其中拿到viewHolder.itemView后设置setOnClickListener,然后设置相关单击监听无效果。

我将你demo中的BaseRecyclerViewActivity中的

 ((View)ivAvatar.getParent()).setOnClickListener(new View.OnClickListener() {
     @Override
     public void onClick(View v) {
         if (data != null) {
             Intent intent = new Intent(BaseRecyclerViewActivity.this, ImageViewerActivity.class);
             intent.putExtra(ImageViewerActivity.IMAGE_EXTRA, data.avatar);
             startActivity(intent);
         }
     }
 });

都注释掉,然后再加上

 itemView.setOnClickListener(new OnClickListener() {
     @Override
     public void onClick(View v) {
         Toast.makeText(SlidingConsumerActivity.this, "单击了itemView", Toast.LENGTH_SHORT).show();
     }
 });

仍然没有点击效果。
是不是因为你的拖拽事件或者其他说明因素影响了点击事件的分发?

侧滑返回在google 华为p10上遇到了问题

问题描述

在这两款手机滑动返回时,第一次滑动的时候然后松手取消滑动,这时再进行滑动返回操作时会没有任何动画效果. 但是这时是可以滑动返回的,就是没有界面效果.

在小米9 锤子手机上测试没问题

出问题的代码

SmartSwipeBack.activitySlidingBack(this, activity ->
                !(activity instanceof MainActivity) && !(activity instanceof VideoActivityFactory)
                        && !(activity instanceof SplashActivity) && !(activity instanceof Login2Activity));

当前使用的SmartSwipe版本号:

implementation 'com.billy.android:smart-swipe:1.0.7'

截图或gif

https://s31.aconvert.com/convert/p3r68-cdx67/e0zvc-fqph0.gif

手势滑动时,边缘阴影可以设置不显示?

作者,你好。 @luckybilly

  • 依赖版本:smart-swipe 1.0.6

  • 背景:
    现在我项目里面使用的是BottomSheetDialog,不够解耦。
    所以想用Activity来实现从下弹出,手势下滑跟随滑动关闭。
    因为UI的效果,只是需要手势下滑跟随滑动关闭就行,所以不想要边缘阴影。

嵌套在VerticalViewPager外面,加载更多变成了下拉刷新

使用版本:
api 'com.billy.android:smart-swipe:1.1.2'
api 'com.billy.android:smart-swipe-x:1.1.0'

加载更多到最后一条,设置可上拉加载,设置为没有更多
image

第一次上拉出现的“已全部加载完成”是正常的,但是在次上拉出现了“下拉刷新”
GIF

关于侧滑菜单的问题

问题描述

请描述您遇到的问题
我想禁止侧滑菜单通过侧滑展开,只能通过actionbar上的按钮控制要怎么操作呢?

  • 预期行为:
    禁止侧滑菜单打开
  • 实际行为:
    无效

出问题的代码

我在点击按钮展开view的时候再处理addConsumer方法,但是无法实现相应侧滑返回的功能

NestedScrollView 嵌套 viewpage时,viewpage不是第一页右滑viewpage却触发返回上个activity

问题描述

NestedScrollView 嵌套 viewpage时,viewpage不是第一页右滑viewpage却触发返回上个activity
NestedScrollView 内容不超出页面高度就没问题

  • 预期行为:滑动viewpage应该返回viewpage前一个页面

  • 实际行为:返回上个activity

出问题的代码:

代码调用:
final float factor = 0.5f;
final int edgeSize = SmartSwipe.dp2px(20, this);
final int shadowColor = 0x80000000;
final int shadowSize = SmartSwipe.dp2px(10, this);
SmartSwipeBack.activitySlidingBack(this
, null
, 0
, Color.TRANSPARENT
, shadowColor
, shadowSize
, factor
, DIRECTION_LEFT);

//activity代码:
public class TestActivity extends AppCompatActivity {
// private TextView textView;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_test);
    initView();
    fragmentList.add(new BlankFragment());
    fragmentList.add(new BlankFragment());
}

private List<Fragment> fragmentList = new ArrayList<Fragment>();
private String[] strings = new String[]{"A","B","C","D"};
private void initView(){
    TabLayout tab_layout = findViewById(R.id.tab_layout);
    ViewPager viewPager = findViewById(R.id.viewPager);
    MyAdapter fragmentAdater = new  MyAdapter(getSupportFragmentManager());
    viewPager.setAdapter(fragmentAdater);
    tab_layout.setupWithViewPager(viewPager);
}

public class MyAdapter extends FragmentPagerAdapter {
    public MyAdapter(FragmentManager fm) {
        super(fm);
    }

    @Override
    public int getCount() {
        return 2;
    }

    @Override
    public Fragment getItem(int position) {
        return fragmentList.get(position);
    }

    @Nullable
    @Override
    public CharSequence getPageTitle(int position) {
        return strings[position];
    }
}

}

//xml布局代码:

<androidx.core.widget.NestedScrollView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">


<com.google.android.material.tabs.TabLayout
android:id="@+id/tab_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
<androidx.viewpager.widget.ViewPager
android:id="@+id/viewPager"
android:layout_width="match_parent"
android:layout_height="100dp">
</androidx.viewpager.widget.ViewPager>

</androidx.core.widget.NestedScrollView>


### 当前使用的SmartSwipe版本号:
 **1.1.2**
### 截图或gif
![XiaoYing_Video_1583216959665](https://user-images.githubusercontent.com/30767266/75749147-16da4880-5d5c-11ea-8786-daac22a00c89.gif)

ERROR: Have you created the publish closure? Missing userOrg.

你好作者,下载code导入android studio后直接报错,标题所示

org.gradle.internal.exceptions.LocationAwareException: A problem occurred configuring project ':smart-swipe'.

Caused by: java.lang.IllegalStateException: Have you created the publish closure? Missing userOrg. 
	at com.novoda.gradle.release.PublishExtension.validate(PublishExtension.groovy:73)

横屏时问题

手机横屏时侧滑关闭界面时会黑屏一下。
主要体现在界面滑出以后,然后闪一下。
SmartSwipe.wrap(this)
.removeAllConsumers()
.addConsumer(new ActivitySlidingBackConsumer(this))
.setRelativeMoveFactor(1F)
.enableDirection(SwipeConsumer.DIRECTION_LEFT,true);

Fragment中使用根布局作为View填入时遇到的崩溃情况,及目前的解决方案

问题描述 DrawerConsumer在引用Fragment最外层布局作为View,加入至侧滑的Layout中,贴出来的代码rfq_root_view为Fragment的根布局,然后Fragment页面点击home键或者触发onHidden方法时会报空指针异常

请描述您遇到的问题: 解决方案就是在根布局在套一层布局 将rfq_root_view作为第二层布局然后放入SmartSwipe.wrap()方法中即可解决问题

  • 预期行为:无崩溃现象

  • 实际行为:出现了崩溃现象

出问题的代码

//由于SmartSwipe中有较多的内置SwipeConsumer及较多的属性设置
// 为方便排查,请在这里将您出现问题的代码展示出来
                mDrawerConsumer = SmartSwipe.wrap(rfq_root_view)
                        .addConsumer(DrawerConsumer())
                        .setRightDrawerView(horizontalMenu)
                        .setScrimColor(0x2F000000) //设置遮罩的颜色
                        .setShadowColor(0x80000000.toInt())    //设置边缘的阴影颜色
                        .addToExclusiveGroup(SwipeConsumerExclusiveGroup())

当前使用的SmartSwipe版本号:

implementation 'com.billy.android:smart-swipe:1.1.2'
implementation 'com.billy.android:smart-swipe-support:1.1.0'

在adapter中使用报错

问题描述

 SwipeConsumer consumer = SmartSwipe.wrap(view)该行代码报错:NullPointerException: Layout parameters cannot be null
  • 预期行为:recyclerview增加侧滑删除按钮

  • 实际行为:运行崩溃

出问题的代码

public ViewHolder onCreateViewHolder(@nonnull ViewGroup parent, int viewType) {
View view = LayoutInflater.from(context).inflate(R.layout.buy_course_list_inner_item, null);
TextView textView = new TextView(context);
textView.setBackgroundColor(0xFFAA0000);
textView.setTextColor(0xFFFFFFFF);
textView.setTextSize(14);
textView.setGravity(Gravity.CENTER);
// textView.setLayoutParams(new FrameLayout.LayoutParams(FrameLayout.LayoutParams.WRAP_CONTENT, FrameLayout.LayoutParams.MATCH_PARENT));
SwipeConsumer consumer = SmartSwipe.wrap(view)
.addConsumer(new SlidingConsumer())
.setHorizontalDrawerView(textView);
// .addToExclusiveGroup(exclusiveGroup);
return new ViewHolder(view);


### 当前使用的SmartSwipe版本号:
例如: **1.0.8**

### 如何复现?(如果能在demo中复现将有利于作者尽快修复问题)


### 截图或gif

(提交issue前请删除本行文字)有时候,一图胜千言,为了更高效的沟通,请将您认为有助于说明问题的截图或者gif图片贴在此处吧!


>>>>>>>>>>>>>>  提交issue前请删除以下内容  <<<<<<<<<<<<<<<

=========== 小贴士 ============

将图片贴到issue中有以下几种方式:

1. 复制图片后,在issue文本输入框中Ctrl + V (mac: command + V)粘贴,github会自动上传图片并添加为其markdown格式
2. 从文件夹中拖动图片到issue的文本输入框中,效果同上
3. 如果是一个在线图片,可在issue输入框中输入图片地址,markdown格式为: ![图片的描述](图片的地址)

提问:如何暂停手势

问题描述

请描述您遇到的问题

  • 预期行为:暂停返回手势,解决手势冲突

  • 实际行为:

你好作者,请问是有暂停手势的API调用嘛,需要在某种时刻暂停下手势

activity调用requestWindowFeature(Window.FEATURE_NO_TITLE)会停止运行

问题描述

只要activity里调用了requestWindowFeature(Window.FEATURE_NO_TITLE)会导致停止运行

出问题的代码

    final float factor = 0.5f;

// final int edgeSize = SmartSwipe.dp2px(50, this);
final int shadowColor = 0x80000000;
final int shadowSize = SmartSwipe.dp2px(10, this);
//仿微信侧滑返回(activitySlidingBack)方案在5.0以下默认使用仿手机QQ的侧滑方案(activityStayBack)
SmartSwipeBack.activitySlidingBack(this
, new MyActivitySwipeBackFilter()
, 0
, Color.TRANSPARENT
, shadowColor
, shadowSize
, factor
, DIRECTION_LEFT);

当前使用的SmartSwipe版本号:

1.1.2

只想要 activity 侧滑返回该调用哪个版本呢?

问题描述

请描述您遇到的问题

  • 预期行为:

  • 实际行为:

出问题的代码

//由于SmartSwipe中有较多的内置SwipeConsumer及较多的属性设置
// 为方便排查,请在这里将您出现问题的代码展示出来

当前使用的SmartSwipe版本号:

例如: 1.0.6

如何复现?(如果能在demo中复现将有利于作者尽快修复问题)

截图或gif

(提交issue前请删除本行文字)有时候,一图胜千言,为了更高效的沟通,请将您认为有助于说明问题的截图或者gif图片贴在此处吧!

提交issue前请删除以下内容 <<<<<<<<<<<<<<<

=========== 小贴士 ============

将图片贴到issue中有以下几种方式:

  1. 复制图片后,在issue文本输入框中Ctrl + V (mac: command + V)粘贴,github会自动上传图片并添加为其markdown格式
  2. 从文件夹中拖动图片到issue的文本输入框中,效果同上
  3. 如果是一个在线图片,可在issue输入框中输入图片地址,markdown格式为: 图片的描述

遇到一些bug

小米6 Android 9 ,项目没有设置窗口透明

在BaseActivity中配置了侧滑具体代码如下:
/**
* 初始化滑动返回
*/
open fun initSlidable() {
//activity侧滑返回
smartSwipe = SmartSwipe.wrap(this)
.addConsumer(ActivitySlidingBackConsumer(this))
.setRelativeMoveFactor(0.5F)
.enableLeft().apply {
//关闭返回
if(!SettingUtil.getSlidable(this@BaseActivity)){
lockLeft()
}else{
//不关闭侧滑返回
unlockLeft()
}
}
}
问题1:进入SettingActivity中 如果一开始是unlockLeft 状态下,代码修改为lockLeft 无效果,当前Activity还是可以侧滑返回,如果一开始是lockLeft状态下,代码修改为unlockLeft 就没问题,侧滑返回可以执行
问题2: 当进入一个Activity时,如果有输入法弹出,弹出的这块区域一开始会是黑色的背景,后面弹出没这个问题
问题3:很奇怪,我根据作者您的文档配置的防微信返回效果,返回是可以了,但是上个界面没有跟随联动效果啊

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.