2016-04-01 3 views

答えて

2

注:これはAndroid: animate searchviewと同じです。

もっと簡単なアプローチ(実際にはコードが2行追加されています)があり、バグがありません。あなたがしなければならないことは、あなたが前にしたようにonCreateOptionsMenu()メソッドにSearchViewをポピュレートすることです。ただし、必要なくなったので、トランジションを設定するコード行を避けてください。

次に、このようなonOptionsItemSelected()をオーバーライドする:

@Override 
public boolean onOptionsItemSelected(final MenuItem item) { 
    switch(item.getItemId()) { 
     case R.id.action_search: 
      TransitionManager.beginDelayedTransition((ViewGroup) getActivity().findViewById(R.id.toolbar)); 
      MenuItemCompat.expandActionView(item); 
      return true; 
    } 
    return super.onOptionsItemSelected(item); 
} 

このコードは、遷移を準備し、ツールバーのレイアウトの変更をリッスン。 SearchViewが表示されると、アニメーションが開始されます。 KitKatと同じAPIを使用しますが、ICSから利用可能です。あなたのbuild.gradleで:

compile 'com.android.support:transition:24.2.1' 

またcustomize the transitionデフォルト1が好きではないことができるかどうか。多くのトランジションが用意されており、あなたのニーズに合ったものもあります。

関連する問題