0
當前我有一個Toolbar
和一個ListView
在它下面。我想讓我的內容更加身臨其境,我希望通過在滾動ListView
時讓工具欄向上滾動屏幕,就像Google Play商店的熱門圖表視圖一樣。我正在使用https://github.com/ksoichiro/Android-ObservableScrollView獲取滾動列表的時間,但現在我的問題是如何在滾動列表時翻譯工具欄?我不想使用onUpOrCancelMotionEvent()
方法,因爲只有在用戶釋放他/她的手指時觸發該方法,而不是在我滾動時觸發。到目前爲止,我已經得到的代碼:使用ListView動畫工具欄
lv.setScrollViewCallbacks(new ObservableScrollViewCallbacks() {
int last = -1;
@Override
public void onScrollChanged(int i, boolean b, boolean b2) {
if (b2) {
if (last == -1) {
last = i;
} else {
int dy = i - last;
if(toolbar.getY() > -TOOLBAR_HEIGHT && dy > 0) {
if(toolbar.getY() - dy < -TOOLBAR_HEIGHT)
toolbar.setY(-TOOLBAR_HEIGHT);
else
toolbar.setY(toolbar.getY() - dy);
tabs.setY(toolbar.getY() + TOOLBAR_HEIGHT);
}else if(toolbar.getY() < 0 && dy < 0) {
if (toolbar.getY() - dy > 0)
toolbar.setY(0);
else
toolbar.setY(toolbar.getY() - dy);
tabs.setY(toolbar.getY() + TOOLBAR_HEIGHT);
}
last = i;
}
}
}
...
}
現在這個工作,但一個白色矩形呈現在原始工具欄是,像這樣:http://i.imgur.com/akY7hly.gif(這是一個GIF)。
我如何使用listview /正確翻譯工具欄來爲工具欄設置動畫?
爲什麼不在「工具欄」上設置動畫? – Elltz
你是什麼意思? – TameHog
不要使用'toolbar.setY()'使用'toolbar.setTranslationY()'而不是 – Kai