【问题标题】:Disabling Spinner in android在android中禁用微调器
【发布时间】:2011-08-24 13:47:51
【问题描述】:

我在使用android:enabled="false" 时遇到问题,如果它是spinner,则不是禁用 组件。不知道它是否相关,但它属于 viewflipper 的一部分的布局。

任何提示或解决方法?

谢谢

【问题讨论】:

    标签: android spinner


    【解决方案1】:

    在设置适配器之前禁用或启用它。

    yourSpinner.setEnabled(false);   
    yourSpinner.setClickable(false);  
    yourSpinner.setAdapter(typeAdapter);
    

    【讨论】:

    • 我还没有发现包含setClickable 是必要的,至少在API 24 上不需要。有没有人发现它在其他版本的android 上?
    • 更重要的是,从今天开始,微调器根本不尊重 clickable 属性,无论它是在 XML 中还是在代码中设置的。
    • 跟设置适配器没关系,前后都可以,没关系,为什么还提?
    【解决方案2】:

    目前还不能在 XML 中启用/禁用 Spinner。 为此,您必须在代码中完成。

    这是一个例子:

    Spinner spinner = (Spinner) findViewById(R.id.mySpinner);
    spinner.setEnabled(false);
    

    【讨论】:

      【解决方案3】:

      您可以在 Java 代码本身中设置它,而不是在 XML 中设置,因为 Spinner 应该从 View 实现 setEnabled(boolean)

      【讨论】:

      • 会试试的。在 xml 中设置时是否有任何已知错误?
      • 与大多数微调器一起工作,但其中一些仍然启用。
      【解决方案4】:

      你可以在xml中设置android:clickable="false"来禁用spinner点击event

      【讨论】:

      • 使用 setEnabled(boolean) 禁用比在 XML 中设置更灵活
      • @Erick 我不同意你的观点,这取决于用例
      • 存在一个不尊重clickable for spinners 的 Android 错误。
      • 已在 android 11 上测试,但无法正常工作。
      猜你喜欢
      • 2020-04-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多