Программная настройка SearchView

Я хочу настроить «текст редактирования» виджета «Просмотр поиска» в своем приложении. Я хочу программно установить его фоновый рисунок. Я также хочу программно добавить флаг android:imeOptions="flagNoExtractUi", чтобы в ландшафтном режиме программная клавиатура покрывала только половину экрана.

Кто-нибудь знает, как я могу сделать эти настройки в поисковых представлениях «edittext»?

Вид поиска


person nmvictor    schedule 14.10.2013    source источник
comment
проверьте это stackoverflow.com/a/11669808/1932105   -  person Ahmed Ekri    schedule 14.10.2013
comment
Спасибо, Ахмед. Как мне программно установить imeoptions android:imeOptions="flagNoExtractUi", когда у меня есть представление?   -  person nmvictor    schedule 14.10.2013
comment
пытаться. youView.setImeOptions (flagNoExtractUi);   -  person Ahmed Ekri    schedule 14.10.2013


Ответы (1)


Это то, что я сделал. Я изучил abs_search_view.xml в библиотеке действий Шерлока и узнал, что R.id.search_plate представляет LinearLayour. Первым дочерним элементом LinearLayout является представление, класс которого равен com.actionbarsherlock.widget.SearchView$SearchAutoComplete. Итак, я извлек первый дочерний элемент и привел его к com.actionbarsherlock.widget.SearchView.SearchAutoComplete, сделал нулевую проверку, а затем установил параметры ime с searchText.setImeOptions(EditorInfo.IME_FLAG_NO_EXTRACT_UI), как советовал Ахменд в комментариях. Надеюсь, это поможет кому-то.

public static void styleSearchView(SearchView searchView, Context context) {
    LinearLayout searchPlate = (LinearLayout) searchView
            .findViewById(R.id.abs__search_plate);
    // TODO
    // searchPlate.setBackgroundResource(R.drawable.your_custom_drawable);
    if (searchPlate != null)
        ((com.actionbarsherlock.widget.SearchView.SearchAutoComplete) searchPlate
                .getChildAt(0))
                .setImeOptions(EditorInfo.IME_FLAG_NO_EXTRACT_UI);
    AutoCompleteTextView searchText = (AutoCompleteTextView) searchView
            .findViewById(R.id.abs__search_src_text);
    if (searchText != null)
        searchText.setImeOptions(EditorInfo.IME_FLAG_NO_EXTRACT_UI);
    // TODO
    // searchText.setHintTextColor(context.getResources().getColor(R.color.your_custom_color));
}

введите здесь описание изображения

person nmvictor    schedule 14.10.2013