【问题标题】:Action Bar Sherlock list navigation text color操作栏 Sherlock 列表导航文本颜色
【发布时间】:2012-11-19 16:18:25
【问题描述】:

在使用Action Bar Sherlock 时,有什么方法可以改变ActionBar 列表导航的文本颜色吗?我发现了几篇关于更改标题颜色的帖子,但如果之前有人问过这个问题,那么抱歉。

在常规操作栏上工作正常,但在预蜂窝设备上时,文本为黑底黑字,使其无法阅读。

【问题讨论】:

  • 您是否正确设置了主题首选项?请添加一些 sn-p 以便我们知道您尝试了什么。

标签: android actionbarsherlock


【解决方案1】:

我知道您想更改文本颜色。我假设这是因为黑色/黑色文本或黑色文本上的深灰色文本。

如果是这样,我找到了一种修复预蜂窝设备的方法,这些设备在区分深色文本上的深色时存在此问题

当您声明 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

【讨论】:

  • 我使用了 R.layout.sherlock_spinner_dropdown_item。现在文本可以正常阅读了,但它有点小,但可以手动设置样式,所以... :)
【解决方案2】:
//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);

【讨论】:

    【解决方案3】:

    您需要创建自己的示例 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);
    

    【讨论】:

      猜你喜欢
      • 2012-07-31
      • 1970-01-01
      • 1970-01-01
      • 2013-04-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多