弹出popwindows里面grideView/listview无法获取item焦点的问题

     最近在进行安卓tv开发时有用到这个情景,需要点击弹出一个popwindow然后让用户选择相应的gridview条目进行回显,遇到popwindow弹出后只能点击条目,无法获取焦点做条目的选中和切换,item的状态选择器无法选中和切换显示,在代码中设置mgridview.setfocusable(true),mgridview.setselection(0),mgridview.requesefocus()也没用,在xml中设置条目的各种focusable = "true",clickable="true"都没用,最后通过借鉴网上各位大神的博客发现是mgridview.setfocusable(true),mgridview.setselection(0),mgridview.requesefocus()设置的时机不对导致的,应该重写activity的onwindowsfocuschange()方法:

@Override
public void onWindowFocusChanged(boolean hasFocus) {
    super.onWindowFocusChanged(hasFocus);
    mGridView.setFocusable(true);
    mGridView.setSelection(FOCUS_POSTION);
    mGridView.requestFocus();
}
效果显示是这样的:


        分析原因可能是本来activity持有焦点,当弹出popwindow的时候Activity失去焦点,popwingdow获取到了焦点,在activity里面设置这个gridview的item获取焦点是无效的。

猜你喜欢

转载自blog.csdn.net/jiabao817/article/details/71310936