2016-09-05 3 views
0

Я работаю в своем приложении и просматриваю панель инструментов поиска, но подсказка имеет небольшой пробел после курсора.Android searchview remove hint padding

Как удалить прокладку?

Вот мой SearchView:

searchview

, и я хотел бы, что:

searchview with no padding

вот мой onCreateOptionsMenu:

SearchManager searchManager=(SearchManager)getSystemService(Context.SEARCH_SERVICE); 
    MenuItem item=menu.findItem(R.id.procura); 
    Drawable drawable = menu.findItem(R.id.procura).getIcon(); 
    if (drawable != null) { 
     drawable.mutate(); 
     drawable.setColorFilter(Color.BLACK, PorterDuff.Mode.SRC_ATOP); 
    } 

    searchView=(SearchView) MenuItemCompat.getActionView(item); 
    searchView.setSearchableInfo(searchManager.getSearchableInfo(getComponentName())); 
    searchView.setQueryHint(getResources().getString(R.string.app_hint)); 

    try { 
     Field mDrawable = SearchView.class.getDeclaredField("mSearchHintIcon"); 
     mDrawable.setAccessible(true); 
     Drawable drw = (Drawable) mDrawable.get(searchView); 
     drw.setBounds(0, 0, 0, 0); 
    } catch (Exception e) { 
     e.printStackTrace(); 
    } 

Мои стили:

<style name="SearchViewMy" parent="Widget.AppCompat.Light.SearchView"> 
    <item name="submitBackground">@color/colorPrimary</item> 
    <item name="queryBackground">@color/colorPrimary</item> 
    <item name="android:colorFocusedHighlight">@color/colorAccent</item> 
</style> 

Мое меню:

<menu xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:app="http://schemas.android.com/apk/res-auto" 
xmlns:tools="http://schemas.android.com/tools" tools:context=".MainActivity"> 
<item 
    android:id="@+id/procura" 
    android:title="@string/app_hint" 
    android:icon="@mipmap/ic_search_black_24dp" 
    app:showAsAction="ifRoom|collapseActionView" 
    app:actionViewClass="android.support.v7.widget.SearchView"/> 

+0

Пожалуйста, размещать соответствующий код, он помогает людям, если мы можем повторить вашу проблему, так как тогда мы сможем ее решить! – Draken

+0

без кода мы не сможем вам помочь – Guenther

+0

Я добавил код java и мои стили, если вам нужно больше спросить меня –

ответ

3

Я нашел решение моей проблемы.

Просто добавьте это в стилях:

<item name="searchHintIcon">@null</item> 

Стили теперь что:

<style name="SearchViewMy" parent="Widget.AppCompat.Light.SearchView"> 
    <item name="submitBackground">@color/colorPrimary</item> 
    <item name="queryBackground">@color/colorPrimary</item> 
    <item name="searchHintIcon">@null</item> 
    <item name="android:colorFocusedHighlight">@color/colorAccent</item> 
</style> 

И onCreateOptionsMenu теперь что:

// Inflate the menu; this adds items to the action bar if it is present. 
    getMenuInflater().inflate(R.menu.menu_main, menu); 


    SearchManager searchManager=(SearchManager)getSystemService(Context.SEARCH_SERVICE); 
    MenuItem item=menu.findItem(R.id.procura); 

    searchView=(SearchView) MenuItemCompat.getActionView(item); 
    searchView.setSearchableInfo(searchManager.getSearchableInfo(getComponentName())); 
    searchView.setQueryHint(getResources().getString(R.string.app_hint)); 


    return true;