禁用布局中的所有元素 - Android

问题描述 投票:0回答:2

在我的 Android 应用程序中,需要禁用许多 UI 元素,直到单击按钮。我可以通过引用 layout 来禁用 layout 中的所有 UI 元素,而不需要一一禁用它们吗?

android android-layout android-widget
2个回答
6
投票

您可以像这样递归地禁用所有视图。 只需将布局作为视图传递给方法即可:

private void enableViews(View v, boolean enabled) {
    if (v instanceof ViewGroup) {
        ViewGroup vg = (ViewGroup) v;
        for (int i = 0;i<vg.getChildCount();i++) {
            enableViews(vg.getChildAt(i), enabled);
        }
    } 
    v.setEnabled(enabled);
}

只需运行

enableViews(view, false)
即可禁用,或运行
enableViews(view, true)
再次启用。


1
投票

在 xml 布局中使用以下属性(作为示例 textView):

android:visibility="gone"

在按钮点击事件中:

myText.setVisible(myText.VISIBLE)

您可以一一使用它们,也可以将所有不可见内容放在一个布局中并隐藏布局。然后,一旦您想显示它们,只需使布局可见,然后所有内容都会显示。

© www.soinside.com 2019 - 2024. All rights reserved.