RWidgetHelper
RWidgetHelper copied to clipboard
background_selected默认就有background_press的效果
给RLinearLayout设置 background_selected,然后发现我也没设置press效果,当我手指按下去的时候就有selected的效果,这应该算是Bug吧?大佬这是啥原因
@RuffianZhong 这个逻辑确实怪怪的,应该是下面这个逻辑的问题。这样会导致一个异常的效果,我设置选中状态并且不设置按压效果。这个时候按压选中的的按钮,就是展示Normal的效果。如下效果:
有问题的逻辑:
正常的
按压第一个按钮
事情是这样的:默认/按下/选中/不可用 这几个状态通过代码自定义的时候(本库功能),各个状态必须要提供值
写这个库的时候我按照个人的思路做了一些默认赋值的操作,可能有些业务场景存在一些不合理的地方,或者存在逻辑冲突
开发者暂时可以通过给各个状态赋值达到UI效果
后续:我再考虑一下是否存在一个较为完美的方案来默认赋值(但是具体业务场景总是复杂多变,个人认为如果遇到某些状态未设置导致UI效果不理想,可以通过给这几个状态都设置一下,就能解决所谓“不合理”的情况)
现在的问题是开发者自己设置颜色也会有问题的。 BTC的颜色:选中的颜色 USDT的颜色:默认的颜色 比如上述那个截图,如果我不设置按压的颜色,按压BTC就是最下面截图那个效果。 如果我设置按压效果,比如设置的按压颜色就是BTC那个颜色,这个时候去按压BTC是好的,但是再去按压USDT就会有问题了。无解
@scsfwgy 1.未设置按压状态时:将默认状态的值同步给按压状态 2.设置按压状态时:各个状态有自己的颜色值 我个人认为这个是没有什么问题的
以你这个需求为例: 1.如果你这两个控件是可以点击的,那你按下颜色和选中颜色一样(这个没问题啊,按下就是一种反馈) 2.如果你这两个控件是不可点击的(textView)只是需要选中和默认状态,你不要开启 clickable 就行啦,这时候无论是否设置 按下状态都没有影响(完全不会触发)
现在就是这种场景有问题:1.如果你这两个控件是可以点击的,那你按下颜色和选中颜色一样(这个没问题啊,按下就是一种反馈) 本身选中那个颜色去按压没问题。但是这个时候你去按压没选中那个按钮,颜色就会变成和选中那个按钮一样,手指划走又变成原来的样子了。非常怪。你看我那个截图。
我也遇到了相同的问题