Bei der Installation der Zurück-Schaltfläche auf dem Fragment Ich habe es geschrieben, indem ich es in der übergeordneten Aktivität definiert und aufgerufen habe. Es ist besser, den Inhalt direkt von jedem Fragment aufzurufen, ohne ihn in Aktivität zu setzen Wie ein erfahrener Ingenieur betonte, werde ich beide Muster als Memorandum belassen.
MainActivity.java
public class MainActivity extends AppCompatActivity {
//Zurück-Schaltfläche definieren
public void setupBackButton(boolean enableBackButton) {
ActionBar actionBar = getSupportActionBar();
actionBar.setDisplayHomeAsUpEnabled(enableBackButton);
}
}
Fragment1.java
//Rufen Sie in onCreateView auf
MainActivity activity = (MainActivity) getActivity();
activity.setupBackButton(true);
setHasOptionsMenu(true); //Für die Verwendung von ActionBar mit Fragment erforderliche Einstellungen
Fragment2.java
//Rufen Sie in onCreateView auf
MainActivity activity = (MainActivity) getActivity();
activity.setupBackButton(false);
Fragment1.java
//Rufen Sie in onCreateView auf
.setupBackButton()
setHasOptionsMenu(true); //Für die Verwendung von ActionBar mit Fragment erforderliche Einstellungen
//In der Fragmentklasse definiert
public void setupBackButton() {
AppCompatActivity activity = (AppCompatActivity) getActivity();
ActionBar actionBar = activity.getSupportActionBar();
actionBar.setDisplayHomeAsUpEnabled(true);
}
Fragment2.java
//Rufen Sie in onCreateView auf
.hideBackButton()
//In der Fragmentklasse definiert
public void hideBackButton() {
AppCompatActivity activity = (AppCompatActivity) getActivity();
ActionBar actionBar = activity.getSupportActionBar();
actionBar.setDisplayHomeAsUpEnabled(false);
}
Auf den ersten Blick sieht es gleich aus, aber die Quelle der Aktivität ist anders! ①MainActivity activity = (MainActivity) getActivity(); ②AppCompatActivity activity = (AppCompatActivity) getActivity();
Es wird gesagt, dass es besser ist, das Schreiben unter der Voraussetzung einer bestimmten Aktivität (in diesem Fall Hauptaktivität) zu beenden. Je mehr vorausgesetzte Klassen (von Ihnen definierte Klassen) vorhanden sind, desto schwieriger ist es für Ihren Code, sichere Änderungen vorzunehmen.
Wenn das Erfassungsziel AppCompatActivity ist, handelt es sich um eine Vererbungsquelle, sodass es fast nie geändert wird und sehr sicher ist. Ich möchte ein starker Ingenieur sein, der mit Blick auf die Zukunft umsetzen kann.
Recommended Posts