我正在尝试构建类似于Flipboard的搜索栏。此搜索栏从工具栏下方设置动画以覆盖工具栏。这个GIF比我能解释的更好:
有谁知道这是否是标准的Material Design?如果是这样,我可以使用任何库或标准小部件来执行此操作吗? Soundcloud也这样做,所以只是想问一下那里是否有什么东西。如果不是,我只需要自己实施。
谢谢!
答案 0 :(得分:0)
要解决此问题,我建议您查看android.support.v4.app.ActivityOptionsCompat.makeSceneTransitionAnimation()
。
以下是我记得的代码片段:
我的ActivityA
包含EditTextA
。
EditTextA
有一个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的Intent
。 Intent
还包含Bundle
(options.toBundle()
),其中包含大量内容,包括从ActivityA
过渡到ActivityB
的视图。就我而言,这是EditTextA
。
在ActivityB.onCreate()
我们需要做的就是将该视图“连接”到它正在转换到的新视图。因此,就我而言,EditTextA
正在转换为EditTextB
中的另一个ActivityB
。
ActivityB.onCreate() {
....
mEditTextB = (EditText) findByViewId(...);
ViewCompat.setTransitionName(mEditTextB, EXTRA_TRANSITION_VIEW);
}
如果我记得应该是正确的一切:)。