我有一个包含多个编辑文本(姓名、电话、评论)的布局。在显示 View 之前,根据 HTTP 调用的结果隐藏一个编辑文本 (comments.setVisibility(View.GONE)) 或可见。如果该 View 是隐藏的,并且用户选项卡来自前一个 View ,则程序会停止。
在 Winforms 中,如果一个字段被隐藏,那么 Tab 键顺序中的下一个项目将获得焦点。对于我在 Android 中的 View ,有什么方法可以在 XML 中执行此操作吗?
我可以以编程方式改变下一个焦点和下一个焦点,但这似乎应该自动完成。
最佳答案
我找不到 Android 执行此操作的任何方法。因此,假设您的 View 通过下一个焦点向下形成一个循环,这里有一个设置下一个焦点的方法:
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;
}
关于Android:当字段可见性更改为 GONE 时更改 XML 中的焦点顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10400527/