1

使用新的 v7 操作栏兼容性库时,我遇到了旧设备上的样式问题。所有样式都搞砸了,例如我正在使用列表导航,并且控制导航的微调器具有默认微调器的圆圈

这是它在 API 10 上的样子:

在此处输入图像描述

而这就是它在 API 17 上的样子:

在此处输入图像描述

如何让样式匹配?

4

2 回答 2

1

我也一直在处理这个问题。关于如何使用 appcompat 库保持列表导航模式向后兼容的文档不是很清楚。这是你应该如何初始化它:

    getSupportActionBar().setNavigationMode(ActionBar.NAVIGATION_MODE_LIST);

    ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(
            getSupportActionBar().getThemedContext(), R.array.my_list_of_items,
            R.layout.support_simple_spinner_dropdown_item);

    getSupportActionBar().setListNavigationCallbacks(adapter, this);

请注意,我使用 getSupportActionBar().getThemedContext() 来获得适当的样式。但这还不够。您还需要使用正确的支持布局:

  • R.layout.support_simple_spinner_dropdown_item。

只有这样,您才能摆脱 Honeycomb 之前的 Android 版本上的单选按钮图像。

于 2014-07-28T07:04:41.807 回答
0

好的,我找到了,我必须在传递给操作栏的数组适配器上使用 setDropDownViewResource()。这使我可以设置自定义布局。问题是它使用了 CheckedTextView ,这就是圆形可绘制对象的来源。我只是给它传递了一个文本视图,它工作正常。

于 2013-10-10T14:28:27.763 回答