【问题标题】:disable all elements in a layout - Android禁用布局中的所有元素 - Android
【发布时间】:2013-12-23 10:49:05
【问题描述】:

在我的 Android 应用程序中,需要禁用一些 UI 元素,直到单击按钮执行。我可以通过引用 layout 来禁用 layout 中的所有 UI 元素,而无需一一禁用它们。有没有可能。谁能帮帮我。

【问题讨论】:

    标签: android android-layout android-widget


    【解决方案1】:

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

    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) 再次启用。

    【讨论】:

    • 通过这个我可以在一个动作中禁用我的视图。对于最初禁用的视图,我可以使用 setEnabled(true) 而不是 setEnabled(false) 在某些侦听器上启用我的视图吗?
    • 好的。我可以以编程方式更改颜色并使启用和禁用更具交互性。提前致谢。
    【解决方案2】:

    在您的 xml 布局中使用以下属性(例如 textView)

    android:visibility="gone"
    

    在按钮点击事件中

    myText.setVisible(myText.VISIBLE)
    

    您可以一个一个地使用它们,也可以将所有不可见的内容放在一个布局中并隐藏布局。然后,一旦你想展示它们,就可以看到布局。然后全部显示

    需要更多评论..只需评论。

    【讨论】:

    • 谢谢。这行得通。但它使我的布局在开始时不可见并且可以将其恢复。我可以在可见时禁用我的布局吗?
    • 非常感谢。我认为会有一种内置的方式。
    • 感谢您的意见。我可以通过使用颜色使禁用更具交互性。非常感谢。
    • 是的。我是 Android 新手,需要专业人士的帮助。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-10
    • 2017-05-01
    • 2012-02-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多