Android:当字段的可见性更改为GONE时,在XML中更改焦点顺序

3
我有一个包含多个编辑文本(姓名、电话、评论)的布局。在视图显示之前,一个编辑文本根据HTTP调用的结果被隐藏(comments.setVisibility(View.GONE))或显示(visible)。如果那个视图被隐藏并且用户从上一个视图切换,则程序会停止。
在Winforms中,如果一个字段被隐藏,则焦点会转移到制表符顺序中的下一个项目。在Android中,是否有一种方法可以在我的视图XML中实现这一点?
我可以通过编程方式更改下一个焦点和上一个焦点,但这似乎应该自动完成。
1个回答

0

我找不到任何 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;
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接