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 微信小程序协议怎么写
  • ¥15 c语言怎么用printf(“\b \b”)与getch()实现黑框里写入与删除?
  • ¥20 怎么用dlib库的算法识别小麦病虫害
  • ¥15 华为ensp模拟器中S5700交换机在配置过程中老是反复重启
  • ¥15 java写代码遇到问题,求帮助
  • ¥15 uniapp uview http 如何实现统一的请求异常信息提示?
  • ¥15 有了解d3和topogram.js库的吗?有偿请教
  • ¥100 任意维数的K均值聚类
  • ¥15 stamps做sbas-insar,时序沉降图怎么画
  • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看