如何将扩展动画设置为searchview

时间:2016-02-26 08:39:00

标签: android searchview searchbar

我想将一个扩展动画设置为searchview,然后尝试应用我找到的方法:

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.menu_main, menu);

    MenuItem item = menu.findItem(R.id.action_search);
    SearchManager searchManager = (SearchManager) getSystemService(Context.SEARCH_SERVICE);
    SearchView searchView = (SearchView) item.getActionView();
    searchView.setSearchableInfo(searchManager.getSearchableInfo(getComponentName()));
    searchView.setIconifiedByDefault(true);

    final int searchBarId = searchView.getContext().getResources().getIdentifier("android:id/search_bar", null, null);
    LinearLayout searchBar = (LinearLayout) searchView.findViewById(searchBarId);
    searchBar.setLayoutTransition(new LayoutTransition());
    return true;
}

但是,变量searchBar始终为null,并且它总是在行

处崩溃
searchBar.setLayoutTransition(new LayoutTransition());

我不知道导致错误的原因。有些人可以帮帮我吗?谢谢!

1 个答案:

答案 0 :(得分:1)

我遇到了同样的问题。事实证明,如果您使用searchBar

,则android.support.v7.widget.SearchView中的空格会为空

我将其更改为android.widget.SearchView(建议如果支持api> 11)。现在我得到了所需的线性布局和动画效果很好。

修改

如果您需要支持版本,则必须使用正确的ID:LinearLayout searchBar = (LinearLayout) mFilterInput.findViewById(android.support.v7.appcompat.R.id.search_bar);