SearchView не показывает текст queryHint

У меня есть представление поиска с фоновым рисунком, но я не могу заставить текст отображаться независимо от того, что я пытаюсь. Текст не отображается в SearchView.

Я пробовал android:text и android:queryHint и даже программно устанавливал их с помощью mSearchView.setQueryHintText("search for something");, но ничего из этого не работает. SearchView не находится внутри actionBar.

Вот xml для поиска

<android.support.v7.widget.SearchView
        android:id="@+id/m_search_view"
        android:layout_width="match_parent"
        android:layout_height="@dimen/searchbar_height"
        android:layout_alignWithParentIfMissing="true"
        android:layout_toLeftOf="@+id/other_button"
        android:background="@drawable/rounded_corner_box"
        android:focusableInTouchMode="true"
        android:gravity="center_vertical|left"
        android:paddingLeft="@dimen/left_padding"
        android:queryHint="search for something"
        android:textAppearance="@style/m_text_appearance"
        android:textColor="@color/m_text_color" />

Когда я не устанавливаю фон, я вообще не вижу searchView (searchView полупрозрачный).

Любая помощь будет оценена по достоинству.


person VIN    schedule 24.08.2016    source источник
comment
Вы используете SearchView из библиотеки поддержки, возможно, вам нужно установить свойства с помощью приложения и Android, например, android:queryHint=искать что-то и приложение:queryHint=искать что-то   -  person jonathanrz    schedule 25.08.2016


Ответы (6)


В XML добавьте android:iconifiedByDefault="false", если вы уже установили значение для android:queryHint.

person James Chang    schedule 08.11.2017

Для android.support.v7.widget.SearchView вместо использования

android:queryHint="your hint" 
android:iconifiedByDefault="false"

вы должны использовать

app:queryHint="your hint" 
app:iconifiedByDefault="false"
person Selmeny    schedule 08.03.2019

В файл макета xml просто добавьте

app:iconifiedByDefault="false"

Обратите внимание, что это приложение:, а не android:

person Cedriga    schedule 28.06.2019

Исправлена ​​моя собственная проблема: мне пришлось копаться в источнике SearchView. Вот как я получил фон и текст для отображения в searchView:

SearchView searchView = (SearchView)mLayout.findViewById(R.id.m_searchview);
searchView.setQueryHint("search for something");
View searchTextView = searchView.findViewById(android.support.v7.appcompat.R.id.search_src_text);
searchTextView.setBackground(
ResourcesCompat.getDrawable(getResources(), R.drawable. rounded_corner_box, getTheme()));
View searchFrame = searchView.findViewById(android.support.v7.appcompat.R.id.search_edit_frame);
searchFrame.setBackground(ResourcesCompat.getDrawable(getResources(), R.drawable.m_background, getTheme()));
person VIN    schedule 25.08.2016

В файл макета xml просто добавьте

app:queryHint="My hint"
person leodev    schedule 15.06.2018

person    schedule
comment
почему это работает? Представление поиска получало события прослушивателя onClick, но не отображало клавиатуру (InputMethod), и я не мог ввести запрос при принудительном отображении клавиатуры. - person CybeX; 28.08.2017