2017-07-12 20 views
0

我将搜索视图添加到操作栏并始终以扩展模式打开它。它总是从正确的边缘我不知道为什么。我尝试了很多解决方案,但仍然没有成功请帮我解决这个问题。操作栏上的搜索视图在Android中不完全扩展

这是菜单代码

<?xml version="1.0" encoding="utf-8"?> 
    <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="com.don.offers.activities.FunHandlerSearchActivity" 
     > 
     <item 
      android:id="@+id/action_search" 
      android:icon="@drawable/ic_magnify_grey600_24dp" 
      app:showAsAction="collapseActionView|never" 
      android:title="@string/search_title" 
      app:actionViewClass="android.support.v7.widget.SearchView" 
      android:imeOptions="actionSearch" 
      /> 

    </menu> 

检索代码

<?xml version="1.0" encoding="utf-8"?> 

    <searchable 
     xmlns:android="http://schemas.android.com/apk/res/android" 
     android:label="@string/app_name" 
     android:hint="@string/search_for_friend" 
     android:imeOptions="actionSearch"> 
    </searchable> 

活动代码

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    MenuInflater inflater = getMenuInflater(); 
    inflater.inflate(R.menu.fun_handler_search_menu, menu); 
    // Associate searchable configuration with the SearchView 
    SearchManager searchManager = 
      (SearchManager) getSystemService(Context.SEARCH_SERVICE); 
    SearchView searchView = 
      (SearchView) menu.findItem(R.id.action_search).getActionView(); 

    MenuItem searchMenuItem = menu.findItem(R.id.action_search); 
    searchMenuItem.expandActionView(); 

    searchView.setSearchableInfo(
      searchManager.getSearchableInfo(getComponentName())); 

    searchView.setSubmitButtonEnabled(true); 
    searchView.setOnQueryTextListener(this); 

    try { 
     ((EditText) searchView.findViewById(android.support.v7.appcompat.R.id.search_src_text)).setHintTextColor(getResources().getColor(R.color.action_bar_grey_color)); 
     ((EditText) searchView.findViewById(android.support.v7.appcompat.R.id.search_src_text)).setTextColor(getResources().getColor(R.color.action_bar_text_grey_color)); 

    } catch (Resources.NotFoundException e) { 
     e.printStackTrace(); 
    } 

    try { 
     ImageView searchClose = (ImageView) searchView.findViewById(android.support.v7.appcompat.R.id.search_close_btn); 
     searchClose.setImageResource(R.drawable.ic_clear_24dp); 
    } catch (Exception e) { 
     e.printStackTrace(); 
    } 

    MenuItemCompat.setOnActionExpandListener(searchMenuItem, new MenuItemCompat.OnActionExpandListener() { 
     @Override 
     public boolean onMenuItemActionExpand(MenuItem item) { 
      return true; 
     } 

     @Override 
     public boolean onMenuItemActionCollapse(MenuItem item) { 
      finish(); 
      overridePendingTransition(R.anim.slide_right_in, R.anim.slide_right_out); 
      return true; 
     } 
    }); 
    return true; 
} 

enter image description here

回答

1

试试这个:

评论这一行象下面这样:

+0

已经添加。查看onCreateOptionsMenu中的代码。 –

+1

@SapnaSharma我说的评论不添加 –

+0

非常抱歉。让我尝试。 –