【发布时间】:2012-11-19 16:18:25
【问题描述】:
在使用Action Bar Sherlock 时,有什么方法可以改变ActionBar 列表导航的文本颜色吗?我发现了几篇关于更改标题颜色的帖子,但如果之前有人问过这个问题,那么抱歉。
在常规操作栏上工作正常,但在预蜂窝设备上时,文本为黑底黑字,使其无法阅读。
【问题讨论】:
-
您是否正确设置了主题首选项?请添加一些 sn-p 以便我们知道您尝试了什么。
在使用Action Bar Sherlock 时,有什么方法可以改变ActionBar 列表导航的文本颜色吗?我发现了几篇关于更改标题颜色的帖子,但如果之前有人问过这个问题,那么抱歉。
在常规操作栏上工作正常,但在预蜂窝设备上时,文本为黑底黑字,使其无法阅读。
【问题讨论】:
我知道您想更改文本颜色。我假设这是因为黑色/黑色文本或黑色文本上的深灰色文本。
如果是这样,我找到了一种修复预蜂窝设备的方法,这些设备在区分深色文本上的深色时存在此问题
当您声明 SpinnerAdapter 时使用:R.layout.sherlock_spinner_item 或 R.layout.sherlock_spinner_dropdown_item
这对我修复蜂窝前设备以及与蜂窝后设备相同的主题很有用。
SpinnerAdapter adapter = ArrayAdapter.createFromResource(this, R.array.navigationArray, R.layout.sherlock_spinner_dropdown_item);
getSupportActionBar().setNavigationMode(ActionBar.NAVIGATION_MODE_LIST);
getSupportActionBar().setListNavigationCallbacks(adapter, this);
来源:https://github.com/JakeWharton/ActionBarSherlock/issues/268
【讨论】:
//in arrays.xml
<string-array name="solidsFoodSelectionType">
<item>recent</item>
<item>all</item>
</string-array>
//in your class
Context context = getSupportActionBar().getThemedContext();
String[] typeOfselectionSelected = getResources().getStringArray(R.array.solidsFoodSelectionType);
typeOfselectionSelectedAdapter = new ArrayAdapter<String>(context,android.R.layout.simple_spinner_dropdown_item,typeOfselectionSelected);
getSupportActionBar().setNavigationMode(ActionBar.NAVIGATION_MODE_LIST);
getSupportActionBar().setListNavigationCallbacks(typeOfselectionSelectedAdapter, this);
【讨论】:
您需要创建自己的示例 custom_spinner_item
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@android:id/text1"
style="?android:attr/spinnerItemStyle"
android:singleLine="true"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ellipsize="marquee" />
然后是下拉资源 custom_spinner_dropdown_item
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@android:id/text1"
style="?android:attr/spinnerDropDownItemStyle"
android:singleLine="true"
android:layout_width="match_parent"
android:layout_height="?attr/dropdownListPreferredItemHeight"
android:ellipsize="marquee" />
你需要改变你自己的风格或采取行动栏夏洛克和修改。然后在您的适配器中使用:
Context context = getSupportActionBar().getThemedContext();
ArrayAdapter<CharSequence> list = ArrayAdapter.createFromResource(context, R.array.locations, custom_spinner_item);
list.setDropDownViewResource(R.layout.custom_spinner_dropdown_item);
这样你就完成了;) 这应该用于预蜂窝:
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);
【讨论】: