找到哪个片段有焦点?

时间:2015-07-29 20:14:58

标签: android android-fragments focus

我有一个应用程序,它在横向模式下并排显示两个片段。两者始终对用户可见,并动态加载到框架布局中。

现在改变纵向方向我想在单帧布局中显示单个片段。我需要了解用户在方向更改期间正在处理哪个片段。我无法理解用户在哪里工作。这两个片段都有多个EditText视图。

我读过关于

的文章
getWindow().getCurrentFocus();

在一个答案中,但这将给我一个观点。现在,如果视图深深嵌套在片段布局中,是否有更好更快的方法来查找在方向更改期间哪些片段处于焦点?
我使用land / layout.xml和layout.xml来布局不同的方向。陆地有2个框架布局,肖像只有一个。

1 个答案:

答案 0 :(得分:0)

我的第一个想法:

我会跟踪哪个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.