我的布局包含几个编辑文本(名称,电话,注释)。在显示视图之前,基于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;
}