SmartSwipe
SmartSwipe copied to clipboard
手指开始右滑的时候,给一个imageview.setImageResource更换图片然后再取消右滑,整个页面所有第一次view.setvisible(VISIBLE)操作view将显示不出来
问题描述
复现步骤: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:谁解决了,希望下面评论和我说下,谢谢
这个你有demo工程吗,看着这个有点抽象
我也遇到了,只要是滑动的时候,手指不放开,取消滑动,就会出现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不会显示了
试试把SmartSwipeWrapper中wrapperNestedScroll方法将mHelp置为空的那一部分代码删除试试
mHelper.nestedScrollingDrag(dxUnconsumed, dyUnconsumed, consumed, false);
// 删除这个mHelper清空的试试
if (consumer.getProgress() >= maxProgress || consumer.getProgress() <= 0) {
mHelper = null;
}
https://github.com/LvBing1995/TestPlayer.git 我用textureview侧滑取消有时候会出现setvisible无效问题,surfaceview也试了试没复现
试试把SmartSwipeWrapper中wrapperNestedScroll方法将mHelp置为空的那一部分代码删除试试
mHelper.nestedScrollingDrag(dxUnconsumed, dyUnconsumed, consumed, false); // 删除这个mHelper清空的试试 if (consumer.getProgress() >= maxProgress || consumer.getProgress() <= 0) { mHelper = null; }
没有用
找到的原因是:View中的requestLayout方法失效了,调用mParent.isLayoutRequested()
这个条件一直为true了,看了下好像是PointsSeekBar这个类下中onDraw方法中addThumbAndPointViews这个调用,把这个删除我就没有复现了。没有找到为什么这个状态没有恢复。