SmartSwipe icon indicating copy to clipboard operation
SmartSwipe copied to clipboard

手指开始右滑的时候,给一个imageview.setImageResource更换图片然后再取消右滑,整个页面所有第一次view.setvisible(VISIBLE)操作view将显示不出来

Open LvBing1995 opened this issue 3 years ago • 6 comments

问题描述

复现步骤:1.xml布局中添加三个控件第一个是button,第二个随便再添加一个viewA(xml布局中设置VIEW.GONE),点击button的作用是显示隐藏viewA,第三个是Imageview,然后给imageview随便设置一张图片androdi:src="xxx图片“ 2.进入整个页面的时候其他地方不操作,手指开始侧滑,onSwipeAccepted方法中给imageview.setImageResource(yyyy图片)设置成另外一张图片,然后再取消侧滑onClosed方法中把imageview.setImageResource(xxx图片)设置回去。 3.这个时候去点击button,viewA调用了setvisible(VISIBLE)但是无法显示,但是如果第一步骤的时候xml中viewA设置的不是GONE而是INVISIBLE那么如此操作viewA是可以显示的。 备注: 使用侧滑代码:mSmartSwipeWrapper = SmartSwipe.wrap(this); mSwipeConsumer = mSmartSwipeWrapper.removeAllConsumers() .addConsumer(new ActivitySlidingBackConsumer()) .setScrimColor(0x7F000000) .enableLeft(); 导入库: implementation 'com.billy.android:smart-swipe-x:1.1.0' implementation 'com.billy.android:smart-swipe:1.1.0' ps:谁解决了,希望下面评论和我说下,谢谢

LvBing1995 avatar Feb 09 '21 06:02 LvBing1995

这个你有demo工程吗,看着这个有点抽象

SimFG avatar Mar 17 '21 12:03 SimFG

我也遇到了,只要是滑动的时候,手指不放开,取消滑动,就会出现view不显示的情况 SmartSwipe.wrap(this) .addConsumer<SwipeConsumer>(SlidingConsumer() .setDrawerExpandable(true) //horizontal menu .setHorizontalDrawerView(horizontalMenuWrapper) //遮罩颜色 .setScrimColor(ResUtils.getColor(R.color.color_40_000000)) .setEdgeSize(100) .as(SlidingConsumer::class.java)) 场景:主页面为viewpager,SlidingConsumer在最上层,手指右滑不放开,滑到一半再左滑隐藏,然后viewpager切换之后,tab里面的view不会显示了

wapalxj avatar Mar 18 '21 03:03 wapalxj

试试把SmartSwipeWrapper中wrapperNestedScroll方法将mHelp置为空的那一部分代码删除试试

mHelper.nestedScrollingDrag(dxUnconsumed, dyUnconsumed, consumed, false);
// 删除这个mHelper清空的试试
if (consumer.getProgress() >= maxProgress || consumer.getProgress() <= 0) {
    mHelper = null;
}

SimFG avatar Mar 18 '21 03:03 SimFG

https://github.com/LvBing1995/TestPlayer.git 我用textureview侧滑取消有时候会出现setvisible无效问题,surfaceview也试了试没复现

LvBing1995 avatar Mar 18 '21 07:03 LvBing1995

试试把SmartSwipeWrapper中wrapperNestedScroll方法将mHelp置为空的那一部分代码删除试试

mHelper.nestedScrollingDrag(dxUnconsumed, dyUnconsumed, consumed, false);
// 删除这个mHelper清空的试试
if (consumer.getProgress() >= maxProgress || consumer.getProgress() <= 0) {
    mHelper = null;
}

没有用

wapalxj avatar Mar 18 '21 09:03 wapalxj

找到的原因是:View中的requestLayout方法失效了,调用mParent.isLayoutRequested()这个条件一直为true了,看了下好像是PointsSeekBar这个类下中onDraw方法中addThumbAndPointViews这个调用,把这个删除我就没有复现了。没有找到为什么这个状态没有恢复。

SimFG avatar Mar 30 '21 03:03 SimFG