【问题标题】:Action bar styling issues操作栏样式问题
【发布时间】:2013-04-08 10:47:01
【问题描述】:

我需要在操作栏中添加一个下拉列表。我尝试了很多不同的方法来做到这一点,但每一种都展示了它的特定缺陷。这是 2 次尝试的结果。

上部是一个微调器,通过actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_LIST); 添加到操作栏中。除了整个应用程序主题(@style/Theme.Sherlock)之外,没有使用任何样式。 (应用程序必须在新旧设备上看起来一致,因此使用 ActionBarSherlock。)如您所见,此方法在深色/黑色背景上生成黑色文本颜色。所选元素在操作栏中以黑色字体在黑色背景上“显示”。 (默认情况下它是 android.R.layout.simple_spinner_itemandroid.R.layout.simple_spinner_dropdown_item 布局,但我也尝试了引用不同可用样式的自定义布局。

例如:

ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, test);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
actionBar.setListNavigationCallbacks(adapter, new ActionBar.OnNavigationListener()
...

第二个是菜单。就颜色而言,它看起来还可以。我想在微调器中使用相同的样式(颜色、字体大小、对齐方式)。但是在玩了很多在互联网上找到的建议后,我无法得到这个,特别是在 SO 上。请注意,我不想在自定义样式中指定硬编码颜色。我想从现有样式(系统或 Sherlock 的全息主题)中继承它们。在 API 级别 10 上应该知道父样式。无论如何,这些是菜单可接受的样式。我只需要把它移到微调器上。

菜单方法可能是一种解决方法,但它缺少右下角的小三角形,表示将向用户呈现一个下拉菜单。我知道它来自可绘制的微调器状态列表,我可以将相同的背景应用于菜单项。但是,它会影响所有菜单项,而我只需要在带有子菜单的项目上显示三角形。

我希望有任何一个方向的解决方案。

【问题讨论】:

  • confuz.. 你想要什么...??
  • @DhavalSodhaParmar,我需要一个可读颜色的下拉菜单(例如,深色背景上的浅色,其中“浅色”和“深色”来自标准主题),并指示下拉菜单是可用。
  • 发布您在导航列表中初始化适配器的代码。
  • 当 Context 传递给 ArrayAdapter 构造函数时,尝试使用Context context = getSupportActionBar().getThemedContext(); 而不是this
  • @rciovati,试过了。没有帮助。

标签: android styles android-actionbar actionbarsherlock


【解决方案1】:

尝试示例中的代码:

    mLocations = getResources().getStringArray(R.array.locations);

    Context context = getSupportActionBar().getThemedContext();
    ArrayAdapter<CharSequence> list = ArrayAdapter.createFromResource(context, R.array.locations, R.layout.sherlock_spinner_item);
    list.setDropDownViewResource(R.layout.sherlock_spinner_dropdown_item);

    getSupportActionBar().setNavigationMode(ActionBar.NAVIGATION_MODE_LIST);
    getSupportActionBar().setListNavigationCallbacks(list, this);

取自:http://bit.ly/19mJdLK

【讨论】:

  • 感谢您的回答。顺便说一句,我没有看到使用微调器作为操作视图的示例 (android:actionLayout),但即使使用主题上下文和夏洛克的布局,微调器也没有在那里设置样式,即它显示为标准微调器。还有其他提示吗?
猜你喜欢
  • 1970-01-01
  • 2014-04-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多