Настройка SearchView
Я использую функцию поиска Android, определенную в AndroidManifest.xml
как:
<meta-data
android:name="android.app.default_searchable"
android:value=".activity.SearchableActivity"/>
<activity
android:name=".activity.SearchableActivity"
android:logo="@drawable/ic_launcher"
android:configChanges="orientation|keyboardHidden|screenSize"
android:launchMode="singleTop"
android:theme="@style/AppTheme">
<intent-filter>
<action android:name="android.intent.action.SEARCH"/>
</intent-filter>
<meta-data
android:name="android.app.searchable"
android:resource="@xml/searchable"/>
</activity>
<provider
android:name=".provider.SearchResultsProvider"
android:authorities="com.example.search"
android:exported="false"/>
<provider
android:name=".provider.SearchSuggestionsProvider"
android:authorities="com.example.search.suggest"
android:exported="false"/>
с searchable.xml
:
<?xml version="1.0" encoding="utf-8"?>
<searchable xmlns:android="http://schemas.android.com/apk/res/android"
android:hint="@string/search_hint"
android:label="@string/app_name"
android:voiceLanguageModel="web_search"
android:voiceSearchMode="showVoiceSearchButton|launchRecognizer"
android:queryAfterZeroResults="false"
android:searchSuggestAuthority="com.example.search.suggest"
android:searchSuggestIntentAction="android.intent.action.VIEW">
</searchable>
где SearchableActivity
продолжается android.support.v7.app.AppCompatActivity
,
Я пытаюсь настроить заголовок и субтитры в SearchView
выпадающий список результатов в соответствии с данным руководством. Как я могу найти из \appcompat-v7\25.3.1\appcompat-v7-25.3.1-sources.jar
Вышеуказанные представления определены в abc_search_dropdown_item_icons_2line.xml
как:
<!-- The subtitle comes before the title, since the height of the title depends on whether the
subtitle is visible or gone. -->
<TextView android:id="@android:id/text2"
style="?android:attr/dropDownItemStyle"
android:textAppearance="?attr/textAppearanceSearchResultSubtitle"
android:singleLine="true"
android:layout_width="match_parent"
android:layout_height="29dip"
android:paddingBottom="4dip"
android:gravity="top"
android:layout_alignWithParentIfMissing="true"
android:layout_alignParentBottom="true"
android:visibility="gone" />
<!-- The title is placed above the subtitle, if there is one. If there is no
subtitle, it fills the parent. -->
<TextView android:id="@android:id/text1"
style="?android:attr/dropDownItemStyle"
android:textAppearance="?attr/textAppearanceSearchResultTitle"
android:singleLine="true"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_above="@android:id/text2" />
Затем я добавил настройку вышеупомянутых видов в styles.xml
:
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
<item name="textAppearanceSearchResultTitle">@style/CustomSearchResultTitle</item>
<item name="textAppearanceSearchResultSubtitle">@style/CustomSearchResultSubtitle</item>
</style>
<style name="CustomSearchResultTitle" parent="TextAppearance.AppCompat.SearchResult.Title">
<item name="android:textColor">@android:color/holo_red_dark</item>
</style>
<style name="CustomSearchResultSubtitle" parent="TextAppearance.AppCompat.SearchResult.Subtitle">
<item name="android:textColor">@android:color/holo_red_dark</item>
</style>
Но это не влияет на мой SearchView
- он имеет вид по умолчанию с черным заголовком и субтитрами! Можно ли их настроить и как, если это так!?
PS: Проект на GitHub для демонстрации вышеупомянутых проблем.