【问题标题】:Animate search bar to toolbar android动画搜索栏到工具栏android
【发布时间】:2015-12-01 20:59:31
【问题描述】:

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

有谁知道这是否是标准的材料设计?如果是这样,我可以使用任何库或标准小部件来执行此操作吗? Soundcloud 也这样做,所以只是想问问那里是否已经有任何东西。如果没有,我只能自己实现它。

谢谢!

【问题讨论】:

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


【解决方案1】:

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

这是我记得的代码中的 sn-ps:

我有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());
}

上面的代码基本上是创建一个Intent 来启动ActivityB。 Intent 还包括一个 Bundle (options.toBundle()),它有很多东西,包括从 ActivityA 转换到 ActivityB 的视图。就我而言,这是EditTextA

ActivityB.onCreate() 中,我们需要做的就是将该视图“连接”到它正在转换到的新视图。所以在我的例子中,EditTextA 正在过渡到另一个 EditTextB,它住在 ActivityB

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

如果我没记错的话应该是它:)。

【讨论】:

    猜你喜欢
    • 2016-05-06
    • 2015-02-04
    • 1970-01-01
    • 2017-08-16
    • 1970-01-01
    • 1970-01-01
    • 2012-06-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多