我試圖建立一個類似於Flipboard的搜索欄。該搜索欄從工具欄下方動畫以覆蓋工具欄。這GIF更好地顯示它比我能解釋一下:動畫搜索欄到工具欄android
有誰知道這是標準的材料設計?如果是這樣,我可以使用任何庫或標準小部件來做到這一點? Soundcloud也是這麼做的,只是想問一下是否有任何東西已經存在。如果沒有,我只需要自己實現它。
謝謝!
我試圖建立一個類似於Flipboard的搜索欄。該搜索欄從工具欄下方動畫以覆蓋工具欄。這GIF更好地顯示它比我能解釋一下:動畫搜索欄到工具欄android
有誰知道這是標準的材料設計?如果是這樣,我可以使用任何庫或標準小部件來做到這一點? Soundcloud也是這麼做的,只是想問一下是否有任何東西已經存在。如果沒有,我只需要自己實現它。
謝謝!
爲了解決這個問題,我建議您考慮一下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());
}
上面的代碼基本上是創建一個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);
}
如果我記得一切正確,應該是:)。
查看此圖書館:https://github.com/lapism/SearchView – notdrone
@clu有一個解決方案呢? – Tinashe
是的:)。請參閱下面的答案。 – clu