version:1.2
fix:优化卡顿 update:基本对接完成,增加指示器放大
This commit is contained in:
100
app/src/main/java/com/uiui/zyos/base/BaseLazyFragment.java
Normal file
100
app/src/main/java/com/uiui/zyos/base/BaseLazyFragment.java
Normal file
@@ -0,0 +1,100 @@
|
||||
package com.uiui.zyos.base;
|
||||
|
||||
|
||||
import android.os.Bundle;
|
||||
|
||||
import androidx.fragment.app.Fragment;
|
||||
|
||||
/**
|
||||
* Author: wangjie
|
||||
* Email: tiantian.china.2@gmail.com
|
||||
* Date: 1/23/15.
|
||||
*/
|
||||
public abstract class BaseLazyFragment extends Fragment {
|
||||
private static final String TAG = BaseLazyFragment.class.getSimpleName();
|
||||
private boolean isPrepared;
|
||||
|
||||
@Override
|
||||
public void onActivityCreated(Bundle savedInstanceState) {
|
||||
super.onActivityCreated(savedInstanceState);
|
||||
initPrepare();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 第一次onResume中的调用onUserVisible避免操作与onFirstUserVisible操作重复
|
||||
*/
|
||||
private boolean isFirstResume = true;
|
||||
|
||||
@Override
|
||||
public void onResume() {
|
||||
super.onResume();
|
||||
if (isFirstResume) {
|
||||
isFirstResume = false;
|
||||
return;
|
||||
}
|
||||
if (getUserVisibleHint()) {
|
||||
onUserVisible();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onPause() {
|
||||
super.onPause();
|
||||
if (getUserVisibleHint()) {
|
||||
onUserInvisible();
|
||||
}
|
||||
}
|
||||
|
||||
private boolean isFirstVisible = true;
|
||||
private boolean isFirstInvisible = true;
|
||||
|
||||
@Override
|
||||
public void setUserVisibleHint(boolean isVisibleToUser) {
|
||||
super.setUserVisibleHint(isVisibleToUser);
|
||||
if (isVisibleToUser) {
|
||||
if (isFirstVisible) {
|
||||
isFirstVisible = false;
|
||||
initPrepare();
|
||||
} else {
|
||||
onUserVisible();
|
||||
}
|
||||
} else {
|
||||
if (isFirstInvisible) {
|
||||
isFirstInvisible = false;
|
||||
onFirstUserInvisible();
|
||||
} else {
|
||||
onUserInvisible();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public synchronized void initPrepare() {
|
||||
if (isPrepared) {
|
||||
onFirstUserVisible();
|
||||
} else {
|
||||
isPrepared = true;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 第一次fragment可见(进行初始化工作)
|
||||
*/
|
||||
public abstract void onFirstUserVisible();
|
||||
|
||||
/**
|
||||
* fragment可见(切换回来或者onResume)
|
||||
*/
|
||||
public abstract void onUserVisible();
|
||||
|
||||
/**
|
||||
* 第一次fragment不可见(不建议在此处理事件)
|
||||
*/
|
||||
public abstract void onFirstUserInvisible();
|
||||
|
||||
/**
|
||||
* fragment不可见(切换掉或者onPause)
|
||||
*/
|
||||
public abstract void onUserInvisible();
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user