【问题标题】:Spinner dropdown style when using as custom view in ActionBarSherlock on Android 2.2在 Android 2.2 上的 ActionBarSherlock 中用作自定义视图时的微调器下拉样式
【发布时间】:2012-11-29 16:05:13
【问题描述】:

我正在使用 ActionBarSherlock。在我的应用程序中,我需要在操作栏中使用 2 个微调器,因此我使用列表导航 + 使用自定义视图添加第二个微调器。

我使用以下代码将微调器添加到自定义视图:

ActionBar bar = getSupportActionBar();

// FALLBACK: Use native actionbar dropdown style for 11+ API. Or use ActionBarSherlock style.
int dropDownStyle = (VERSION.SDK_INT < 11) ? R.attr.actionDropDownStyle : android.R.attr.actionDropDownStyle;           

MyAdapter someAdapter = new MyAdapter(this, list);          

Spinner mySpinner = new Spinner(this, null, dropDownStyle);                    
mySpinner.setAdapter(someAdapter);        
mySpinner.setOnItemSelectedListener(this);

bar.setCustomView(mySpinner);
bar.setDisplayShowCustomEnabled(true);

在 Android 4.0.3 上一切正常。

Android 2.2 行为

列表导航微调器在 Android 4.0.4 上看起来像(作为下拉菜单)。但是自定义视图中的微调器在微调器视图单击时显示对话框而不是下拉列表。

所以我需要像在 Android 4.0.4 上一样在 Android 2.2 的自定义视图中将 Spinner 显示为下拉列表

【问题讨论】:

    标签: android android-actionbar actionbarsherlock android-spinner


    【解决方案1】:

    ActionBarSherlock 使用自定义微调器控件IcsSpinner,它提供下拉功能。虽然这确实存在于internal 包中,但它是一个公共类,因此您可以切换代码以使用它。这应该为您提供列表导航控件使用的下拉列表的精确镜像。

    但是,请记住,此控件并非设计用于任何地方,而是用作内置列表导航,因此可能缺少您想要的功能或特性。

    【讨论】:

    • 感谢 ABS 开发人员的回复 :))。是的,我知道我可以使用 IcsSpinner。但它是某些 Android API 版本的控件的镜像。而且我只想在 API 11 之前的 Android 和 API 11+ 上的原生 Spinner 控件上使用它。也许还有其他解决方案?
    • 您始终可以使用 layout-v11 文件夹来使用原始 Spinner。然后在您的正常布局中使用 IcsSpinner。
    猜你喜欢
    • 1970-01-01
    • 2011-12-26
    • 2015-12-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-01
    • 1970-01-01
    相关资源
    最近更新 更多