3

我有一个 EditText 和一个 popupWindown(其中有一个 ListView),现在我触摸 EditText,popupWindow 显示。

我需要这样的情况:我可以在 SoftInput 中输入一些东西,我也可以在 ListView 中单击一个子项,它是 PopupWindow 的子项。

现在,我只能输入,或者只能点击 listview ,我不能在 Android 4.1、4.2 中同时做这两件事。但我可以在 Android 4.4、5.0 中两者都做。

我尝试了很多方法,比如popupWindo.setFocus(true),它只会让EditText失去焦点。

那么,android可以允许两个视图都有焦点吗?

4

2 回答 2

4

不,两个(或更多)视图不能同时具有焦点,这是不可能的。

以下是如何将焦点从一个 textView 更改为另一个 textView。您可以根据自己的情况进行更改。

于 2014-12-04T08:48:12.077 回答
2

实际上,从技术上讲,两个视图可以同时具有焦点 - 不仅仅是您想象的那样(并且您的用例需要):

焦点视图的父级也可以将焦点设置为 true。参照。示例视图层次结构的摘录,has-focus=true不止一次弹出:

View Hierarchy:
+>DecorView{id=-1, visibility=VISIBLE, width=1920, height=1080, has-focus=true, has-focusable=true, has-window-focus=true, is-clickable=false, 
|
+->LinearLayout{id=-1, visibility=VISIBLE, width=1776, height=1080, has-focus=true, has-focusable=true, has-window-focus=true, is-clickable=fal
|
+-->ViewStub{id=16909243, res-name=action_mode_bar_stub, visibility=GONE, width=0, height=0, has-focus=false, has-focusable=false, has-window-f
|
+-->FrameLayout{id=-1, visibility=VISIBLE, width=1776, height=1008, has-focus=true, has-focusable=true, has-window-focus=true, is-clickable=fal
|
+--->FitWindowsLinearLayout{id=2131296268, res-name=action_bar_root, visibility=VISIBLE, width=1776, height=1008, has-focus=true, has-focusable
|
+---->ViewStubCompat{id=2131296279, res-name=action_mode_bar_stub, visibility=GONE, width=0, height=0, has-focus=false, has-focusable=false, ha
|
+---->ContentFrameLayout{id=16908290, res-name=content, visibility=VISIBLE, width=1776, height=1008, has-focus=true, has-focusable=true, has-wi
|
+----->LinearLayout{id=-1, visibility=VISIBLE, width=1776, height=1008, has-focus=true, has-focusable=true, has-window-focus=true, is-clickable
|
+------>RecyclerView{id=2131296483, res-name=lstRecordings, visibility=VISIBLE, width=1776, height=873, has-focus=true, has-focusable=true, has
于 2018-12-21T10:51:18.210 回答