Si vous voulez que vos suggestions pour apparaissent dans le paysage, vous devez faire une des opérations suivantes:
- Ajouter
SUGGEST_COLUMN_QUERY
à votre suggestion résultats
- Ajouter
android:searchMode="queryRewriteFromText"
ou `` Android : searchMode = "queryRewriteFromData" to your
searchable.xml`
Cependant, je pense que pour sugges Il est plus agréable de montrer simplement la fenêtre normale au lieu d'un clavier plein écran. Vous pouvez y parvenir en ajoutant android:imeOptions="flagNoExtractUi"
à votre searchable.xml
.
Et c'est tout. Si vous êtes curieux, voici comment je pisté cette baisse:
Hierarchy Viewer vous dira que la boîte de dialogue de recherche est mis en œuvre par SearchDialog
, qui utilise un AutoCompleteTextView
pour la vue du texte d'achèvement. Sa fonction buildDropDown()
appelle Filter.convertResultToString()
(à travers convertSelectionToString()
) sur les articles retournés par le mAdapter.getItem()
puis les passe à InputMethodManager.displayCompletions()
(qui est responsable des suggestions que vous voulez). Dans le cas de SearchDialog
, l'adaptateur est un SuggestionsAdapter
. C'est une sous-classe de CursorAdapter
, dont la méthode getFilter()
renvoie une classe CursorFilter
, qui implémente convertResultToString()
en déléguant simplement à convertToString()
sur la classe d'adaptateur. SuggestionsAdapter
implémente enfin cette méthode comme suit:
public CharSequence convertToString(Cursor cursor) {
if (cursor == null) {
return null;
}
String query = getColumnString(cursor, SearchManager.SUGGEST_COLUMN_QUERY);
if (query != null) {
return query;
}
if (mSearchable.shouldRewriteQueryFromData()) {
String data = getColumnString(cursor, SearchManager.SUGGEST_COLUMN_INTENT_DATA);
if (data != null) {
return data;
}
}
if (mSearchable.shouldRewriteQueryFromText()) {
String text1 = getColumnString(cursor, SearchManager.SUGGEST_COLUMN_TEXT_1);
if (text1 != null) {
return text1;
}
}
return null;
}
... qui se traduit par les recommandations du premier paragraphe ci-dessus.
Pouvez-vous afficher le code de disposition de cet écran? –