android吸頂佈局(動態添加和移除view)

參考文章五種方式實現Android吸頂效果

我的效果
在這裏插入圖片描述
吸頂關鍵點:

  1. 根據滑動距離動態改變tabLayout的父容器
  2. 根據滑動距離動態改變懸浮tab的背景色
  3. 錨點切換關鍵點參考另一篇文章android錨點優化

關鍵點代碼:

if (y >= headerH) {
    //滑動的距離大於頭部佈局的高度,切換tabLayout的父佈局爲scrollview外部的tab容器
    if (frame_dynamic_view.getParent() != ll_out_bar) {
        ll_inside_bar.removeView(frame_dynamic_view);
        ll_out_bar.addView(frame_dynamic_view);
        ll_out_bar.setBackgroundColor(getResources().getColor(R.color.white));
    }
} else {
    //滑動的距離小於頭部佈局的高度,切換tabLayout的父佈局爲scrollview內部的tab容器
    if (frame_dynamic_view.getParent() != ll_inside_bar) {
        ll_out_bar.removeView(frame_dynamic_view);
        ll_inside_bar.addView(frame_dynamic_view);
        ll_out_bar.setBackgroundColor(getResources().getColor(android.R.color.transparent));
    }
}
if (isScroll) {
    //關鍵點2:由scrollView引起的滑動後移動tabLayout高亮顯示指定的tab
    if (y +tabH < ll_second.getTop()) {
        setScrollPos(0);
    } else if (y +tabH >= ll_second.getTop() && y + tabH< ll_third.getTop()) {
        setScrollPos(1);
    } else if (y + tabH>= ll_third.getTop()) {
        setScrollPos(2);
    }
}

完整代碼

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章