Search code examples
androidfocusamazon-fire-tv

Show views currently focused (Even without layout selectors)


I'm trying to inspect a code for a very big Android (Amazon Fire TV) activity but i keep loosing the focus in the running app and i don't know what element is being focused.

I'm looking for a way (Wether it's an App, a developer setting - Show Layout Limits gets near - or something i can code inside the activity) to see what view is being focused, without having to change the layout (Selectors) of every single view.

What do you suggest?


Solution

  • Activity has a method called getCurrentFocus().

    Maybe you could call hasFocus() on all the Views if the above doesn't work. I imagine the method would look something like this:

    public View getFocusedView(View layout)
    {
        View focusedView = null;
    
        // Note: I'm not sure if FOCUS_DOWN is the right one to use here
        // so you may want to see the other constants offered
        ArrayList<View> views = layout.getFocusables(View.FOCUS_DOWN)
        for(View v: views)
        {
            if(v.hasFocus())
            {
                focusedView = v;
            }
        }
        return focusedView;
    }