這個效果搞了三個小時,有一種淡淡的憂傷 先看下效果
網上這方面的案例特別的少
思路很重要,說下實現的過程:
step1:
佈局什麼的就不說了,首先在Mainactivity實現沉浸式狀態欄
public static void setWindowImmersiveState(Activity activity) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
Window window = activity.getWindow();
window.setFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS, WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
}
activity.getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
activity.getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);
}
佈局加上fitsystemWindow =true
step2 ;
這樣我們實現了圖片居於頂部,但是頭部控件需要位於狀態欄下方
只需要計算下狀態欄的高度
設置padding屬性
public static int getWindowStateHeight(Context context) {
int statusBarHeight1 = -1;
int resourceId = context.getResources().getIdentifier("status_bar_height", "dimen", "android");
if (resourceId > 0) {
statusBarHeight1 = context.getResources().getDimensionPixelSize(resourceId);
}
return statusBarHeight1;
}
step3 滑動監聽 需要重寫scrollview對其作出監聽事件
監聽y的偏移量 去設置背景透明度
傳送門 戳我