Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android仿淘寶view滑動至屏幕頂部會一直停留在頂部的位置

Android仿淘寶view滑動至屏幕頂部會一直停留在頂部的位置

編輯:關於Android編程

在剛剛完成的項目中,在一個頁面中,用戶體驗師提出引用戶操作的入住按鈕要一直保留在頁面當中,不管頁面能滾動多長都得停留在頁面的可視區域。最終實現效果如下圖所示:

 

如圖中的紅色框中的view始終會停留在頁面中,如果滑動至頁面的頂部,會一直保留在頂部。

下面來說下具體的實現思路:

思路:其實整個頁面當中一共有兩個視覺效果一樣的View,通過滑動的位置來進行View的隱藏和顯示來達到這種效果。整個頁面的在上下滑動的過程中可以總結為兩個狀態,狀態A(如圖1所示),view2在可視區域內時,view1不可見。狀態B(如圖2所示),view2滑過了可視區域,此種狀態view1可見,view2不可見。

view顯示和隱藏的時機:1、當頁面向上滑動時,從狀態A轉變到狀態B的瞬間,view1正好滑動至頂部與view2重合的瞬間,將view1顯示;

2、當頁面向下滑動,從狀態B轉變到狀態A的瞬間,view2正好和view1重合的瞬間,將view1隱藏。

ViewAllShowLinearLayout類

package org.sunday.uiext; 
import android.content.Context; 
import android.util.AttributeSet; 
import android.view.View; 
import android.widget.LinearLayout; 
import android.widget.ScrollView; 
/** 
* @author sunday 
* 2013-12-5 
* 郵箱:[email protected] 
* QQ:804935743 
*/ 
public class ViewAllShowLinearLayout extends LinearLayout { 
private View mView; // 頂部的View 
private ViewSwitchListener viewSwitchListener; // 對外鉤子接口 
private ScrollView mScrollView; 
private boolean isFlag = true; //輔助判斷變量 
public void initData(View view, ScrollView scrollview, 
ViewSwitchListener viewSwitchListener) { 
this.mView = view; 
this.mScrollView = scrollview; 
this.viewSwitchListener = viewSwitchListener; 
} 
public ViewAllShowLinearLayout(Context context) { 
super(context); 
init(); 
} 
public ViewAllShowLinearLayout(Context context, AttributeSet attrs) { 
super(context, attrs); 
init(); 
} 
private void init() { 
setOrientation(LinearLayout.VERTICAL); 
} 
@Override 
public void computeScroll() { 
if (mView != null && mScrollView != null && viewSwitchListener != null) { 
int y = mScrollView.getScrollY(); 
if (isFlag) { 
int top = mView.getTop(); 
if (y >= top) { 
viewSwitchListener.onViewShow(); 
isFlag = false; 
} 
} 
if (!isFlag) { 
int bottom = mView.getBottom(); 
if (y <= bottom - mView.getHeight()) { 
viewSwitchListener.onViewGone(); 
isFlag = true; 
} 
} 
} 
} 
public interface ViewSwitchListener { 
public void onViewShow(); 
public void onViewGone(); 
} 
}

項目中的使用效果:

 

以上所述是小編給大家介紹的Android仿淘寶view滑動至屏幕頂部會一直停留在頂部的位置,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對本站網站的支持!

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved