列表视图中的键盘导航具有多个可聚焦元素

时间:2017-03-16 11:31:21

标签: android listview keyboard

我有一个Android ListView,它可以包含不同类型的listItem。 一些列表项本身具有多个可聚焦元素。 我正在寻找一种能够使用硬件键盘导航列表的方法,以及能够在listitem中选择可聚焦元素并在它们之间导航。

例如,在下图中,所有listItem都有多个按钮。因此,当我打开我的Activity时,我应该能够使用键盘向上和向下箭头浏览listitem。

enter image description here

但是当我按下Enter(或D-PAD)时,焦点应该转到listItem内的第一个按钮。之后,我应该能够使用箭头键浏览所有按钮

enter image description here

当我为所有按钮设置focusable false并在listView本身上设置listView.setItemsCanFocus(false)时,我能够实现第一种情况。

我尝试在从适配器返回视图之前设置setFocusable(false),然后在列表中处理它们OnItemClickListener

        listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {          
                View v = listView.getChildAt(position);
                v.setFocusable(true);
                v.requestFocus();
                Button b1 = (Button)(listView.getChildAt(position).findViewById(R.id.butt1));
                Button b2 = (Button)(listView.getChildAt(position).findViewById(R.id.butt1));                   
                b1.setFocusable(true);
                b2.setFocusable(true);                  
                b1.requestFocus();
            }
    });

但它也没有把重点放在按钮上。

0 个答案:

没有答案