今天在TV中一个页面有三个控件可以获取焦点:
1.back左上角;
2.时间筛选的button右上角;
3.ViewPager下方居中;
然后点击button弹出PopupWindow选择时间后刷新ViewPager,但是刷新后ViewPager获取不到焦点,左上角的back默认获得焦点。
一个解决方法,希望对大家有用,
在onCrate方法中:
//监听mViewPager刷新之后,viewtree重新绘制完成之后自己再获取焦点
mViewPager.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
//这里如果back有焦点则把焦点给mViewPager
if (back.hasFocus()) {
mViewPager.requestFocus();
}
}
});
希望能够帮助到看文章的你!