廢話不多說 先上圖(目前做出來的效果)
https://i.imgur.com/30HBN7i.gif
主要的想法是:
在下方ListView捲動的時候,sub 那一欄 View 可以跟著隱藏/顯示。
(main:置頂標題,bottom:置底工具列)
問題是:
當 sub 隱藏的時候,ListView 下方就會出現一塊與 sub 等高的空白。
以下是 code,有省略一些沒關聯的:
(這裡用了套件 ObservableListView 來幫助辨識 ListView 的往上/往下)
-
if(往上 && listView.getTranslationY() == 0) {
moveTitle(listView, -sub.getMeasuredHeight());
} else if (往下 && listView.getTranslationY() == -sub.getMeasuredHeight()) {
moveTitle(listView, 0);
}
private void moveTitle(final View listView, final float y) {
ValueAnimator animator = ValueAnimator.ofFloat(
listView.getTranslationY(), y);
animator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
@Override
public void onAnimationUpdate(ValueAnimator animation) {
float translationY = (float) animation.getAnimatedValue();
listView.setTranslationY(translationY);
listView.getLayoutParams().height = (int) (-translationY
+ listView.getMeasuredHeight());
listView.requestLayout();
}
});
animator.start();
}
-
卡在這裡卡超久的,新的寫法通常都是用 RecyclerView,
但我這裡只能用 ListView…(有其他東西已經寫好了,不好改)
該怎麼解決下方露出空白的問題,
或是有其他更好的寫法?