3

我想在我的应用程序中自定义搜索视图小部件的“edittext”。我想以编程方式设置其背景可绘制对象。我还想以编程方式添加标志 android:imeOptions="flagNoExtractUi",以便在景观模式下,软键盘只会覆盖屏幕的一半。

任何人都知道如何在搜索视图“edittext”上进行此自定义?

搜索视图

4

1 回答 1

1

这就是我所做的。我abs_search_view.xml在 action bar sherlock 库中学习并了解到它R.id.search_plate代表一个 LinearLayour。LinearLayout 的第一个孩子是一个视图,其类是com.actionbarsherlock.widget.SearchView$SearchAutoComplete. 因此,我检索了第一个孩子并将其转换为com.actionbarsherlock.widget.SearchView.SearchAutoComplete,进行了空检查,然后searchText.setImeOptions(EditorInfo.IME_FLAG_NO_EXTRACT_UI)按照 Ahmend 在评论中的建议设置了 ime 选项。希望这可以帮助某人。

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));
}

在此处输入图像描述

于 2013-10-14T10:51:44.167 回答