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

请大神指点下,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 bdmh 2年前

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

    点赞 评论 复制链接分享

相关推荐