动画搜索栏到工具栏android

时间:2015-12-01 20:59:32

标签: android android-animation material-design android-search

我正在尝试构建类似于Flipboard的搜索栏。此搜索栏从工具栏下方设置动画以覆盖工具栏。这个GIF比我能解释的更好:

flipboard-search-animate

有谁知道这是否是标准的Material Design?如果是这样,我可以使用任何库或标准小部件来执行此操作吗? Soundcloud也这样做,所以只是想问一下那里是否有什么东西。如果不是,我只需要自己实施。

谢谢!

1 个答案:

答案 0 :(得分:0)

要解决此问题,我建议您查看android.support.v4.app.ActivityOptionsCompat.makeSceneTransitionAnimation()

以下是我记得的代码片段:

我的ActivityA包含EditTextAEditTextA有一个View.OnClickListener

View.OnClickListener() {
        @Override
        public void onClick(View view) {
            ActivityB.launch(getActivity(), view);
        }
}

在调用时调用静态方法:ActivityB.launch(Activity a, View transitionView)

public static void launch(Activity activity, View transitionView) {
    ActivityOptionsCompat options = ActivityOptionsCompat.makeSceneTransitionAnimation(
            activity, transitionView, EXTRA_TRANSITION_VIEW);
    Intent intent = new Intent(activity, ActivityB.class);
    ActivityCompat.startActivity(activity, intent, options.toBundle());
}

上面的代码基本上是创建一个将启动ActivityB的IntentIntent还包含Bundleoptions.toBundle()),其中包含大量内容,包括从ActivityA过渡到ActivityB的视图。就我而言,这是EditTextA

ActivityB.onCreate()我们需要做的就是将该视图“连接”到它正在转换到的新视图。因此,就我而言,EditTextA正在转换为EditTextB中的另一个ActivityB

ActivityB.onCreate() {
    ....
    mEditTextB = (EditText) findByViewId(...);
    ViewCompat.setTransitionName(mEditTextB, EXTRA_TRANSITION_VIEW);
}

如果我记得应该是正确的一切:)。