BaseBindingFragment.java
1.09 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
package com.hjx.parent.fragment;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.fragment.app.Fragment;
import androidx.viewbinding.ViewBinding;
public abstract class BaseBindingFragment<T extends ViewBinding> extends Fragment {
private T binding;
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
// 调用onCreateViewBinding方法获取binding
binding = onCreateViewBinding(inflater, container);
return binding.getRoot();
}
@Override
public void onDestroyView() {
super.onDestroyView();
// 引用置空处理
binding = null;
}
// 子类使用该方法来使用binding
public T getBinding() {
return binding;
}
// 由子类去重写
protected abstract T onCreateViewBinding(@NonNull LayoutInflater inflater, @Nullable ViewGroup parent);
}