【问题标题】:Can the ActionBar drop-down navigation list control be disabled?可以禁用 ActionBar 下拉导航列表控件吗?
【发布时间】:2011-06-23 08:00:19
【问题描述】:

我在 ActionBar 中使用导航控件来提供下拉列表。我想在某些情况下禁用下拉列表的选择。

我的微调器适配器关闭视图的布局有一个 TextView 包裹在一个 LinearLayout 中。我想出的最好的方法是在我的微调器适配器中覆盖getView,并使LinearLayoutTextView 不可点击和禁用。这具有使文本变灰的效果,但仍然可以选择。

编辑我很感激我可以隐藏列表,但这不是我想要做的。此外,我在检查是否启用了一个或所有项目的方法中返回了 false,但这不起作用。

尝试在 Xoom 上与 Honeycomb 一起使用。提前致谢。彼得。

【问题讨论】:

    标签: android android-3.0-honeycomb


    【解决方案1】:

    如果您想阻止在列表导航模式中选择任何内容,请致电 setNavigationMode(NAVIGATION_MODE_STANDARD) 并完全摆脱它,直到您准备好再次使用它。

    如果你想防止在列表导航模式下选择特定项目,让你的SpinnerAdapter实现areAllItemsEnabled()返回false并根据需要实现isItemEnabled()返回truefalse——我还没有尝试过,但理论上它应该可以工作。

    【讨论】:

    • 将各种启用的方法设置为返回 false 不起作用。我已经相应地更新了问题。
    • @PJL:那我怀疑你想要的是不可能的。
    • 当用户点击searchWidget时,我使用此代码隐藏/显示列表,否则它会调整我的列表大小,破坏布局:)
    • 我想简单指出 areAllItemsEnabled()/isItemEnabled() 解决方案确实适用于 ActionBarSherlock。
    【解决方案2】:

    您可以像这样在 ActionBar 中创建自定义视图:

        ViewGroup customFilterBrowse = (ViewGroup) getLayoutInflater().inflate(R.layout.component_cancellable_progressbar, null);       
        ActionBar actionBar = getActionBar();
        actionBar.setCustomView(customFilterBrowse);
        actionBar.setDisplayOptions(ActionBar.DISPLAY_SHOW_HOME | ActionBar.DISPLAY_SHOW_CUSTOM);   
    

    您可以让自定义视图做任何您想做的事情(例如,您可以创建一个 Spinner 组件,在某些情况下禁用它)。

    HTH

    【讨论】:

    • 谢谢。不再在该领域工作(不再是要求),但会在某个时候尝试一下以接受答案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多