【问题标题】:Text color of SearchView in ActionBar with ActionBarSherlock使用 ActionBarSherlock 在 ActionBar 中 SearchView 的文本颜色
【发布时间】:2013-05-31 04:19:22
【问题描述】:

我想更改 ActionBarSherlock SearchView 中文本的颜色,所以我在 StackOverflow 上找到了这个:

AutoCompleteTextView searchText = (AutoCompleteTextView) searchView.findViewById(R.id.abs__search_src_text);
searchText.setHintTextColor(getResources().getColor(R.color.white));
searchText.setTextColor(getResources().getColor(R.color.white));    

但问题是searchText 始终为空。我也尝试了search_src_text(没有abs__) - 同样,searchTextnull

我将 Sherlock 用于我的 ActionBar(具有自定义的操作栏视图),但我还希望更改搜索视图的文本颜色。

有什么我不明白的吗?

【问题讨论】:

  • 您的布局看起来如何?您的应用在哪个版本的 Android 上运行?添加和应用一些自定义样式而不是以编程方式分配它们是很常见的。 abs__... 标识符仅(可能)在 Honeycomb 之前的设备上有用。
  • 我的 actionbar 的自定义视图布局是简单的 LinearLayout,其中包含两个 imageview。我运行应用程序的 Android 是 4.2..

标签: android actionbarsherlock


【解决方案1】:

按如下方式更改和应用您的样式:

  1. 覆盖定义相关样式的SearchViewStyle

    <style name="SearchViewStyle" 
           parent="Widget.Sherlock.Light.SearchAutoCompleteTextView">
        <item name="android:textColor">myTextColor</item>
    </style>
    
  2. 将此样式定义添加到您的应用主题中。

    <style name="CustomTheme" parent="Theme.Sherlock.Light">
        ...
        <item name="searchAutoCompleteTextView">@style/SearchViewStyle</item>
        ...
    </style>
    
  3. 在您的 Manifest (android:theme="CustomTheme") 中应用此主题。

希望这会有所帮助……干杯!

p.s. 在 ABS 样式定义(XML 文件)中搜索 SearchViewStyle。这样您就可以使用 Ctrl+单击定义来跟进可用样式。

【讨论】:

【解决方案2】:

其他方式,为我工作

@Override
public boolean onCreateOptionsMenu(Menu menu) {
        searchView = new SearchView(getSupportActionBar().getThemedContext());

        AutoCompleteTextView searchText = (AutoCompleteTextView) searchView.findViewById(R.id.abs__search_src_text);
        searchText.setTextColor(Color.BLACK); 
.....................
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-01-18
    • 2017-07-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-31
    • 1970-01-01
    相关资源
    最近更新 更多