Android:当字段可见性更改为“已消失”时,更改XML中的焦点顺序

Android:当字段可见性更改为“已消失”时,更改XML中的焦点顺序,android,android-layout,Android,Android Layout,我有一个包含多个编辑文本(姓名、电话、评论)的布局。在显示视图之前,根据HTTP调用的结果,一个编辑文本被隐藏(comments.setVisibility(view.GONE))或可见。如果该视图被隐藏,并且用户选项卡与上一个视图不同,则程序将停止 在Winforms中,如果某个字段被隐藏,则选项卡顺序中的下一项将被聚焦。在Android中,有没有什么方法可以在XML中为我的视图实现这一点 我可以通过编程方式将下一个焦点调低,下一个焦点调高,但这似乎应该是自动完成的。我找不到Android实现

我有一个包含多个编辑文本(姓名、电话、评论)的布局。在显示视图之前,根据HTTP调用的结果,一个编辑文本被隐藏(comments.setVisibility(view.GONE))或可见。如果该视图被隐藏,并且用户选项卡与上一个视图不同,则程序将停止

在Winforms中,如果某个字段被隐藏,则选项卡顺序中的下一项将被聚焦。在Android中,有没有什么方法可以在XML中为我的视图实现这一点


我可以通过编程方式将下一个焦点调低,下一个焦点调高,但这似乎应该是自动完成的。

我找不到Android实现这一点的任何方法。下面是一种设置下一个焦点的方法,假设您的视图通过下一个焦点形成循环:

protected int getNextFocusDownBasedOnVisibility(View view)
{
    int nextViewDownId = View.NO_ID;

    if (view.getVisibility() != View.GONE)
    {
        boolean keepGoing = true;
        View nextView = view;

        while (keepGoing)
        {
            keepGoing = false;
            nextViewDownId = nextView.getNextFocusDownId();

            if (nextViewDownId != View.NO_ID)
            {
                nextView = findViewById(nextViewDownId);

                if (nextView.getVisibility() == View.GONE)
                {
                    keepGoing = true;
                }
            }
        }
    }

    return nextViewDownId;
}