找到哪个片段有焦点?
Find which fragment has focus?
我有一个应用程序在横向模式下并排显示两个片段。两者始终对用户可见,并动态加载到框架布局中。
现在将方向更改为纵向,我想在单个框架布局中显示单个片段。我需要了解用户在方向更改期间正在处理哪个片段。我无法理解用户在哪里工作。这两个片段都有多个 EditText 视图。
我读过
getWindow().getCurrentFocus();
在一个回答中,但这应该return我一个观点。现在,如果视图深深地嵌套在片段布局中,是否有更好更快的方法来找到在方向更改期间哪个片段处于焦点?
我正在使用 land/layout.xml 和 layout.xml 进行不同方向的布局。土地一有2个框架布局,纵向只有一个。
我的第一个想法:
我会跟踪哪个 EditText 具有焦点。
1) 为每个代表面板的EditText设置一个标签(setTag()
),有的是panel1
,有的是panel2
.
2) 在每个 EditText 上设置此侦听器:
boolean firstPanelVisible = true;
editText.setOnFocusChangeListener(new OnFocusChangeListener() {
@Override public void onFocusChange(View v, boolean hasFocus) {
if(hasFocus){
if(v.getTag().equals("panel1")) {
firstPanelVisible = true;
} else {
firstPanelVisible = false; // the second panel is visible.
}
}
}
}
});
// TODO When changing orientation check which panel is focused.
我有一个应用程序在横向模式下并排显示两个片段。两者始终对用户可见,并动态加载到框架布局中。
现在将方向更改为纵向,我想在单个框架布局中显示单个片段。我需要了解用户在方向更改期间正在处理哪个片段。我无法理解用户在哪里工作。这两个片段都有多个 EditText 视图。
我读过
getWindow().getCurrentFocus();
在一个回答中,但这应该return我一个观点。现在,如果视图深深地嵌套在片段布局中,是否有更好更快的方法来找到在方向更改期间哪个片段处于焦点?
我正在使用 land/layout.xml 和 layout.xml 进行不同方向的布局。土地一有2个框架布局,纵向只有一个。
我的第一个想法:
我会跟踪哪个 EditText 具有焦点。
1) 为每个代表面板的EditText设置一个标签(setTag()
),有的是panel1
,有的是panel2
.
2) 在每个 EditText 上设置此侦听器:
boolean firstPanelVisible = true;
editText.setOnFocusChangeListener(new OnFocusChangeListener() {
@Override public void onFocusChange(View v, boolean hasFocus) {
if(hasFocus){
if(v.getTag().equals("panel1")) {
firstPanelVisible = true;
} else {
firstPanelVisible = false; // the second panel is visible.
}
}
}
}
});
// TODO When changing orientation check which panel is focused.