SearchView развернуть / свернуть анимацию в Android

Что у меня есть

У меня есть SearchView, который отлично работает. Но когда я касаюсь этого, он появляется и исчезает из ничего. На нем нет анимации перехода, и это выглядит не очень хорошо.

Что я хочу

Я хочу, чтобы простая слайд-анимация влево и вправо, чтобы воспроизводиться в SearchView, когда она расширяется и сворачивается соответственно.

Что я пробовал

SearchView searchView = (SearchView) menu.findItem(R.id.action_search).getActionView(); //Get the ID for the search bar LinearLayout int searchBarId = searchView.getContext().getResources().getIdentifier("android:id/search_bar", null, null); //Get the search bar Linearlayout LinearLayout searchBar = (LinearLayout) searchView.findViewById(searchBarId); //Give the Linearlayout a transition animation. searchBar.setLayoutTransition(new LayoutTransition()); 

Но searchBar всегда равно null, поэтому я не могу установить на него переход макета.

Могу ли я получить решение? Правильно ли мой подход?

Solutions Collecting From Web of "SearchView развернуть / свернуть анимацию в Android"

Вы можете просто захватить LinearLayout, выполнив следующие действия:

 LinearLayout searchBar = (LinearLayout) searchView.findViewById(R.id.search_bar); 

Так,

 SearchView searchView = (SearchView) menu.findItem(R.id.action_search).getActionView(); final int searchBarId = searchView.getContext().getResources().getIdentifier("android:id/search_bar", null, null); LinearLayout searchBar = (LinearLayout) searchView.findViewById(searchBarId); searchBar.setLayoutTransition(new LayoutTransition()); 

После прочтения ответа @Steven я получил решение, приведенное ниже

Внутри onCreateOptionsMenu(Menu menu) напишите код

  getMenuInflater().inflate(R.menu.meet_people_menu, menu); final MenuItem searchItem = menu.findItem(R.id.app_bar_search); SearchView searchView = (SearchView) searchItem.getActionView(); LinearLayout searchBar = (LinearLayout) searchView.findViewById(R.id.search_bar); searchBar.setLayoutTransition(new LayoutTransition()); 

И вот мой meet_people_menu.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="com.jz.cso.activities.MeetPeopleActivity"> <item android:title="" android:id="@+id/app_bar_search" android:icon="@drawable/ic_search_black_24dp" app:actionViewClass="android.support.v7.widget.SearchView" app:showAsAction="always" ></item> </menu> 
 View searchBar = searchView.findViewById(R.id.search_bar); if (searchBar != null && searchBar instanceof LinearLayout) { ((LinearLayout) searchBar).setLayoutTransition(new LayoutTransition()); }