Wie kann ich die Erstellung von Unbinder nach BaseFragment verschieben?
Ich würde lieber als es halte es, die Unterklasse die Verantwortung zu lassen unbinder
der Initialisierung, wenn onCreateView
genannt wird, aber wenn Sie es wirklich bewegen wollen und die Umsetzung von onCreateView
nicht ändert, das einzig fehlende Stück Information ist die ID des Layouts (R.layout.catigories_fragment
in diesem Fall) die verschiedenen Unterklassen verwenden möchten. Eine Lösung könnte sein, einen Getter in Ihrem BaseFragment
protected int getLayoutId() {
return 0;
}
zu erklären und es für die inflater.inflate
verwenden. Z.B.
@Override
public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = null;
if (getLayoutId() != 0) {
view = inflater.inflate(getLayoutId(), container, false);
unbinder = ButterKnife.bind(this, view);
init();
}
return view;
}
und onDestroy
@Override
public void onDestroy() {
super.onDestroy();
if (unbinder != null) {
unbinder.unbind();
}
}
Ich Sache viel einfacher Gebrauch Unbinder unbinder geschützt; und erstelle in jedem Kind ein Fragment))) – ip696
Nun, du warst es, der fragt 'Wie kann ich die Unbinder-Erstellung nach BaseFragment verschieben?' – Blackbelt
Ja. Genau das habe ich natürlich gefragt. Danke für die Antwort! Gleich nach der Antwort entschied ich, dass meine Implementierung nicht schlecht ist. Denkst du, es lohnt sich, die Unbinder-Erstellung auf das Basisfragment zu verschieben? – ip696