1

Я использую SearchView из библиотеки support.v7. Я посмотрел на this post, который предполагает, что вы можете просто оживить вид поиска, установив LayoutTransitionКак анимировать полную ширину SearchView развернуть/свернуть в панели действий?

LinearLayout searchBar = (LinearLayout) searchView.findViewById(searchBarId); 
//Give the Linearlayout a transition animation. 
searchBar.setLayoutTransition(new LayoutTransition()); 

Однако выше не работает для меня. Представление поиска также, кажется, только заполняет часть ширины экрана в ландшафте As shown here. Я хотел бы для него fill_parent

Я пытался решить обе эти проблемы, создав простую анимацию, но не с ошибкой searchView.getLayoutParams();, потому что она всегда возвращает null.

Конечная цель - иметь SearchView в панели действий, которая плавно расширяется/сворачивается и занимает ширину ширины экрана в ландшафте.

Есть ли способ сделать это?

Вот настройки вида поиска, что я в настоящее время есть:

@Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     // Only show items in the action bar relevant to this screen 
     // if the drawer is not showing. Otherwise, let the drawer 
     // decide what to show in the action bar. 
     getMenuInflater().inflate(R.menu.menu_main, menu); 
     //Associate searchable configuration with the SearchView 
     SearchManager searchManager = (SearchManager) getSystemService(Context.SEARCH_SERVICE); 
     searchView = (SearchView) MenuItemCompat.getActionView(menu.findItem(R.id.search)); 
     searchView.setSearchableInfo(searchManager.getSearchableInfo(getComponentName())); 

     //Returns null 
     //searchView.getLayoutParams(); 
     return true; 
    } 

И menu_main.xml

<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/search" 
      android:title="Search" 
      android:icon="@android:drawable/ic_menu_search" 
      app:showAsAction="collapseActionView|ifRoom" 
      app:actionViewClass="android.support.v7.widget.SearchView"/> 
</menu> 
+0

Где является XML? –

+0

Обновлено, чтобы включить меню xml. – Naveed

ответ

0

ли в oncreateoptions:

MenuItem searchitem = menu.findItem(R.id.search); 
SearchView search= (SearchView) searchitem.getActionView(); 
ActionBar.LayoutParams p= new ActionBar.LayoutParams(ActionBar.LayoutParams.MATch_parent, same here) 
search.setLayoutParams(p); 
searchitem.expandActionView(); 
+0

Это использует android.app.ActionBar, как упоминалось в моем сообщении, я использую библиотеку поддержки v7. И это, похоже, не работает для меня. Я использовал версию поддержки вашего ответа. Вы тестировали его в ландшафтной ориентации? Расширенное окно поиска по-прежнему не занимает всю ширину для меня в ландшафте. – Naveed

+0

Любые причины не использовать ActionBar? –

+0

Да, я не использую android.app.Activity, поэтому у меня нет доступа к регулярной панели действий. Я использую библиотеку поддержки для обратной совместимости некоторых функций. – Naveed