Die Fragment-und benutzerdefinierte Ansicht kann die ähnliche Funktion zu erreichen, ich weiß, dass Fragment im Vergleich zu benutzerdefinierten Ansicht wiederverwendbar ist, weitere Vorteile/Verbesserungen für die Verwendung von Fragment? Soll Fragment die benutzerdefinierte Ansicht oder nur eine Erweiterung für einen bestimmten Zweck ersetzen?Fragment vs. Benutzerdefinierte Ansicht in Android
Zum Beispiel unter dem Code Fragment:
public class TestFragment extends Fragment {
private TextView tv_name;
private Button btn_play;
private Button btn_delete;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
return inflater.inflate(R.layout.testfragment, container, false);
}
@Override
public void onStart() {
super.onStart();
tv_name = (TextView)getView().findViewById(R.id.tv_name);
btn_play = (Button)getView().findViewById(R.id.btn_play);
btn_delete = (Button)getView().findViewById(R.id.btn_delete);
}
}
Der Code für benutzerdefinierte Ansicht:
public class TestCustomView extends LinearLayout {
private TextView tv_name;
private Button btn_play;
private Button btn_delete;
public TestCustomView(Context context, AttributeSet attrs){
super(context, attrs);
setOrientation(LinearLayout.HORIZONTAL);
setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT));
tv_name = new TextView(context);
addView(tv_name);
btn_play = new Button(context);
addView(btn_play);
btn_delete = new Button(context);
addView(btn_delete);
}
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
return inflater.inflate(R.layout.testfragment, container, false);
}
}
Sowohl TestFragment
und TestCustomView
eine Ansicht TextView
bestehend erstellen und Buttons
und verwenden Sie die Tags Framelayout/fragment
und com.packagename.TestCustomView
, um in der Aktivität zu deklarieren. s XML-Layout-Datei, aber was sind die Vorteile, um Fragment zu verwenden?
Ich finde Fragmente nützlich, wenn Sie auf etwas zugreifen müssen, das die Ansicht nicht hat, z. Informationen über den Fragment-Lebenszyklus oder etwas wie "LoaderManager". – Karakuri