weixin_43831915 2019-01-28 09:54 采纳率: 0%
浏览 1043

请大神指点下,AndroidTV中viewpager+fragment用法中的fragment不能进行onfocus监听?

代码太多就不全贴了,贴上有问题的onfocus部分,viewpager+fragment就是网上常规的用法。
public class MainActivity extends FragmentActivity implements View.OnFocusChangeListener,
View.OnClickListener {
@Override
public void onCreate (Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

             findViewById(R.id.fragmentba).setOnFocusChangeListener(this);//标签1
    findViewById(R.id.fragmentbb).setOnFocusChangeListener(this);//标签2
    findViewById(R.id.fragmentbc).setOnFocusChangeListener(this);//标签3
    findViewById(R.id.fragmentbd).setOnFocusChangeListener(this);//标签4
    findViewById(R.id.button1).setOnFocusChangeListener(this);//fragment1中的APP1
    findViewById(R.id.button2).setOnFocusChangeListener(this);fragment2中的APP1

             @Override
public void onFocusChange(View v,boolean b) {
    if (b) {
        Log.i(TAG, "onFocusChangs" + v.getId());
        MoveFrame.focusAnimator(v,onFocusView);//调用焦点框的方法
        if (v.getId() == R.id.fragmentba) {
            mViewPager.setCurrentItem(0);//焦点框在标签1时,显示fragment1
        } else if (v.getId() == R.id.fragmentbb) {
            mViewPager.setCurrentItem(1);//焦点框在标签2时,显示fragment2
        } else if (v.getId() == R.id.fragmentbc) {
            mViewPager.setCurrentItem(2);//焦点框在标签3时,显示fragment3
        } else if (v.getId() == R.id.fragmentbd) {
            mViewPager.setCurrentItem(3);//焦点框在标签4时,显示fragment4
        }
    }
}

}

  • 写回答

1条回答

  • bdmh 移动开发领域优质创作者 2019-01-28 11:12
    关注

    你为什么不监听pager的change事件呢,判断当前fragement的index

    评论

报告相同问题?

悬赏问题

  • ¥15 shape_predictor_68_face_landmarks.dat
  • ¥15 slam rangenet++配置
  • ¥15 对于相关问题的求解与代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料
  • ¥15 使用R语言marginaleffects包进行边际效应图绘制
  • ¥20 usb设备兼容性问题