我正在嘗試使動畫工作,當我滾動我的ListView
時。我想要的是,當用戶滾動查看列表中的更多條目時,其上方的佈局(A RelativeLayout
)將縮小。我希望RelativeLayout
只能在屏幕四分之一的範圍內移動,而且滾動時只能達到屏幕一半的大小。動畫列表查看大小增加
我現在的代碼是跳動,看起來不好。我需要一個更好的解決這個問題
這裏是我的代碼到目前爲止
@Override
public void onScroll(AbsListView view, int firstVisibleItem,int visibleItemCount, int totalItemCount) {
if(mLastFirstVisibleItem < firstVisibleItem){
Display display = getActivity().getWindowManager().getDefaultDisplay();
Point size = new Point();
display.getSize(size);
int screenHeight = size.y;
System.out.println("Screen Height/2: " + (screenHeight/2));
System.out.println("Balance Height 1: " + relBal.getHeight());
if(relBal.getHeight() > (screenHeight/2)){
newBalHeight = (screenHeight/2);
}
else {
newBalHeight = relBal.getHeight() + 100;
}
System.out.println("Balance Height 2: " + newBalHeight);
ResizeAnimation resize = new ResizeAnimation(relBal, relBal.getWidth(), relBal.getHeight(), relBal.getWidth(), newBalHeight);
relBal.startAnimation(resize);
}
if(mLastFirstVisibleItem > firstVisibleItem){
Display display = getActivity().getWindowManager().getDefaultDisplay();
Point size = new Point();
display.getSize(size);
int screenHeight = size.y;
System.out.println("Screen Height/4: " + (screenHeight/4));
System.out.println("Balance Height: " + relBal.getHeight());
if(relBal.getHeight() < (screenHeight/4)){
newBalHeight = (screenHeight/4);
}
else {
newBalHeight = relBal.getHeight() - 100;
}
System.out.println("Balance Height 2: " + newBalHeight);
ResizeAnimation resize = new ResizeAnimation(relBal, relBal.getWidth(), relBal.getHeight(), relBal.getWidth(), newBalHeight);
relBal.startAnimation(resize);
}
mLastFirstVisibleItem = firstVisibleItem;
}
這是我的頁面的樣子
我想它看起來像這樣,當我滾動看到更多的項目
您是否嘗試過在沒有動畫的情況下調整視圖的大小?應該經常調用onScroll來不需要動畫。 – dharms 2014-10-29 18:51:22
@dcharms我認爲問題是滾動方向正確。當使用那個scrolllistener時,這並不好用 – BigT 2014-10-29 19:16:41
有許多庫可以爲你的目的提供服務而無需編寫複雜的翻譯動畫: 你可以使用[Android Sliding Up Panel](https://github.com/umano/AndroidSlidingUpPanel),因爲它是docs說你可以使用setAnchorPoint在屏幕中間的某個位置設置一個錨點,以允許面板的中間展開狀態(類似於谷歌地圖)。 或使用[SlidingMenu](https://github.com/jfeinstein10/SlidingMenu)。 – 2014-11-05 17:31:29