要求功能列表的Item点击后(即选中后)要变大(像智能电视选中那样)。突出选中效果。
一开始打算用动态布局来实现。尝试了一番,不行。没有效果。
随即Google,百度一顿操作,发现基本全是自定义View实现的。几百行代码几百行代码的一顿猛操作。99%都是做TV上的应用。罗里吧嗦一大堆,逛了一圈没有合适的轮子,直接pass。
还有个是继承所需要放大缩小的控件重写方法
https://www.jianshu.com/p/7b20eb0f1730 他这个似乎是做智能电视类型的APP,是取到焦点放大,失焦缩小,我改成了点击,试了下没用,没效果。做智能电视APP的可以试下;
本打算自己重写个View来实现。
突然想到有个属性 setScaleX 可以设置缩放比例;放大我直接按倍数set不就行了?立马写了Demo发现果然ojbk。
代码很简单,按照常规的recyclerView和其Adapter的使用方法创建视图即可。
注意
父布局要加上 clipChildren="false" 不剪切溢出的子视图。一定要加,不然会出现放大被遮挡的BUG;
放大缩小核心代码 写在适配器里
if (getItem() == i) {
//1.1为原来的大小+1的0.1倍放大
my.itemView.findViewById(R.id.speed_view).setScaleX(1.3f);
my.itemView.findViewById(R.id.speed_view).setScaleY(1.3f);
} else {
//缩小同理 1为布局设定的大小
my.itemView.findViewById(R.id.speed_view).setScaleX(1f);
my.itemView.findViewById(R.id.speed_view).setScaleY(1f);
}
Demo地址:https://github.com/zhuangguangkang0013/item.git
限速云地址:https://pan.baidu.com/s/1a1PE_n2vLvsjQFqjUEMa4w 提取码:hz04
CSDN地址:https://download.csdn.net/download/u011046184/11146644
效果图: 点击Item item变大