实现fragement懒加载
public class CultureFragment extends BaseFragment {
public boolean isLoaded=false;
******************************
private boolean isDataLoaded = false;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setRetainInstance(true); // 保持实例
}
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
if (null != mView) {
ViewGroup parent = (ViewGroup) mView.getParent();
if (null != parent) {
parent.removeView(mView);
}
} else {
mView = inflater.inflate(R.layout.fragment_culture, container, false);
//initView(mView);
}
return mView;
}
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
if (isVisible()) {
loadData(); // 加载数据
}
}
@Override
public void onResume() {
super.onResume();
if (!isDataLoaded && isVisible()) {
loadData(); // 加载数据
}
}
private void loadData() {
// 在这里执行数据加载操作(例如从网络或数据库获取数据)
// 当数据准备好时:
getData(page,tabId);
isDataLoaded = true; // 设置数据已加载标志
updateUI(); // 更新UI元素
}
private void updateUI() {
************************************
smartRefreshLayout.setOnMultiPurposeListener(new SimpleMultiPurposeListener(){
@Override
public void onRefresh(@NonNull RefreshLayout refreshLayout) {
super.onRefresh(refreshLayout);
page=1;
getData(page,tabId);
recyclerView.smoothScrollToPosition(0);//回到顶部
smartRefreshLayout.finishRefresh(2000);
}
@Override
public void onLoadMore(@NonNull RefreshLayout refreshLayout) {
super.onLoadMore(refreshLayout);
//获取试图总条目
page++;
getData(page,tabId);
smartRefreshLayout.finishLoadMore(2000);
}
});
//初始化titles数据
*****************************
intTab();
initAdapter();
}
@MainThread
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
initView();
//initAdapter();
}
private void initView() {
}
private void intTab(){
Set set=titles.keySet();
Object[] arr=set.toArray();
Arrays.sort(arr);
for(Object key:arr){
//System.out.println(key);
tabLayout.addTab(tabLayout.newTab().setText(titles.get(key)));
}
tabLayout.addOnTabSelectedListener(new TabLayout.OnTabSelectedListener(){
@Override
public void onTabSelected(TabLayout.Tab tab) {
pos=tab.getPosition();
page=1;
tabId= (Integer) StringUtils.getKey(titles,tab.getText());
getData(page,tabId);
//Toast.makeText(activity,"点击了我:"+tab.getPosition(),Toast.LENGTH_SHORT).show();
}
@Override
public void onTabUnselected(TabLayout.Tab tab) {
}
@Override
public void onTabReselected(TabLayout.Tab tab) {
}
});
}
private void initAdapter(){
************************略
}
private void getData(int pages,int catId){
HttpRequest.culturelist((LifecycleOwner) activity, pages,catId, new CallBackLis<List<CultureBean>>() {
@Override
public void onSuccess(String method, List<CultureBean> content) {
******************lue
}
@Override
public void onFailure(String method, String error) {
Toast.makeText(activity, error, Toast.LENGTH_SHORT).show();
}
});
}
}