viewpager中的fragment布局的控件如何拿到焦点

红外遥控中,焦点移动到viewpager,没有被fragmet的textview控件得到焦点,

打印日志查看焦点
View rootView = getWindow().getDecorView();
View focusView = rootView.findFocus();
Logcat.i("focusView=" + focusView);

发现焦点一直在viewpager内的RecyclerView上,
focusView=androidx.viewpager2.widget.ViewPager2$RecyclerViewImpl{2f5d9ca VFED..... .F...... 0,0-1920,676 #1}


解决方法:清除viewpager的recyclerview的焦点
mBinding.viewpager.setAdapter(adapter);
for(int i=0;i<mBinding.viewpager.getChildCount();i++){
    RecyclerView recyclerView = (RecyclerView) mBinding.viewpager.getChildAt(i);
    recyclerView.clearFocus();
    recyclerView.setFocusable(false);
}

再运行就发现控件可以获取到焦点了

focusView=androidx.appcompat.widget.AppCompatTextView{962c3dd VFED..... .F...... 260,444-460,504 #7f0a029a app:id/tv_install}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值