做TV端项目一般都会碰到选中item变大效果并且背景更换,这个可以用Recycleview的item中
android:background="@drawable/bg_select"
bg_select相关代码:
<item android:drawable="@drawable/list_focus_bg" android:state_pressed="true"/>
<item android:drawable="@drawable/list_focus_bg" android:state_focused="true"/>
<item android:drawable="@drawable/list_focus_bg" android:state_selected="true"/>
<item android:drawable="@drawable/list_unfocus_bg"/>
分别设置对应背景就可以实现效果,可是如果想要改变文字或者一些图片的UI,网上此方法并没有特别多,我也尝试重写Recycleview的itemselected事件也无法实现(可能自己写的有问题啊),最后通过在adapter中的监听item布局的焦点事件
item_layout.setOnFocusChangeListener(new View.OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
//焦点
if(hasFocus ) {
//被选中
Txt.setTextColor(context.getResources().getColor(R.color.WHITE));
}else {
//没有选中
Txt.setTextColor(context.getResources().getColor(R.color.tv_txt_font));
}
}
});
通过这种方式就可以修改被选中item里面的文字相关UI和图片相关UI了,需要的小伙伴可以试一下