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 HLs设计手写数字识别程序编译通不过
  • ¥15 Stata外部命令安装问题求帮助!
  • ¥15 从键盘随机输入A-H中的一串字符串,用七段数码管方法进行绘制。提交代码及运行截图。
  • ¥15 TYPCE母转母,插入认方向
  • ¥15 如何用python向钉钉机器人发送可以放大的图片?
  • ¥15 matlab(相关搜索:紧聚焦)
  • ¥15 基于51单片机的厨房煤气泄露检测报警系统设计
  • ¥15 路易威登官网 里边的参数逆向
  • ¥15 Arduino无法同时连接多个hx711模块,如何解决?
  • ¥50 需求一个up主付费课程