没有合适的资源?快使用搜索试试~ 我知道了~
首页android TV常见需求,焦点item保持居中 —— RecyclerView自定义焦点滑动位置和滑动速度。
android tv开发和移动端开发最大的不同就是多了一个焦点处理的逻辑。尤其是类似Recyclerview这样本身带有滑动效果,为了醒目的显示当前焦点在什么位置,需要滑动的时候回添加大量的动画、高亮、阴影等效果。 同样,让焦点位置不变而列表主动滑动也是一种常见的提醒焦点的手段。demo效果图如下,结尾放出全部代码: 一、准备工作 先导入recyclerview dependencies { implementation 'androidx.recyclerview:recyclerview:1.2.0-alpha03' } 我用的demo是androidx的recycl
资源详情
资源评论
资源推荐

android TV常见需求,焦点常见需求,焦点item保持居中保持居中 —— RecyclerView
自定义焦点滑动位置和滑动速度。自定义焦点滑动位置和滑动速度。
android tv开发和移动端开发最大的不同就是多了一个焦点处理的逻辑。尤其是类似Recyclerview这样本身带有滑动效
果,为了醒目的显示当前焦点在什么位置,需要滑动的时候回添加大量的动画、高亮、阴影等效果。
同样,让焦点位置不变而列表主动滑动也是一种常见的提醒焦点的手段。demo效果图如下,结尾放出全部代码:
一、准备工作一、准备工作
先导入recyclerview
dependencies {
implementation 'androidx.recyclerview:recyclerview:1.2.0-alpha03'
}
我用的demo是androidx的recyclerview。低版本的同学可以使用android.support支持库。
在布局文件中添加recyclerview的布局,并添加一个item的布局。findviewbyid找到recyclerview的控件,并
setLayoutManager(我用的是LinearLayoutManager)和setAdapter。一个粗糙的recyclerview效果就出来了。这是最简单的
recyclerview,除了能滑动,什么效果也没有。
二、突出焦点,添加放大动画和阴影二、突出焦点,添加放大动画和阴影
允许item获得焦点,并为item设置焦点监听。这一步可以放到onBindViewHolder或者ViewHolder初始化的地方。
为了能看出当前焦点的位置,还需要对获得焦点的item进行高亮处理。下面代码中,用setTranslationZ添加了阴
影,ofFloatAnimator方法中还设置了放大动画。
class MyHolder extends RecyclerView.ViewHolder{
public MyHolder(@NonNull final View itemView) {
super(itemView);
itemView.setFocusable(true);
itemView.setOnFocusChangeListener(new View.OnFocusChangeListener() {
@Override
public void onFocusChange(View view, boolean b) {
if(b){
int[] amount = getScrollAmount(recyclerView, view);//计算需要滑动的距离
//滑动到指定距离



















安全验证
文档复制为VIP权益,开通VIP直接复制

评论0