簡單的解決方案,在com.trello.navi.component
包中創建您自己的NaviAppCompatActivity
。
package com.trello.navi.component;
import android.support.v7.app.AppCompatActivity;
import android.content.Intent;
import android.content.res.Configuration;
import android.os.Bundle;
import android.os.PersistableBundle;
import android.support.annotation.NonNull;
import com.trello.navi.Event;
import com.trello.navi.Listener;
import com.trello.navi.NaviComponent;
import com.trello.navi.internal.NaviEmitter;
public class NaviAppCompatActivity extends AppCompatActivity implements NaviComponent {
private final NaviEmitter base = NaviEmitter.createActivityEmitter();
@Override public boolean handlesEvents(Event... events) {
return base.handlesEvents(events);
}
@Override public <T> void addListener(Event<T> event, Listener<T> listener) {
base.addListener(event, listener);
}
@Override public <T> void removeListener(Listener<T> listener) {
base.removeListener(listener);
}
@Override protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
base.onCreate(savedInstanceState);
}
@Override public void onCreate(Bundle savedInstanceState, PersistableBundle persistentState) {
super.onCreate(savedInstanceState, persistentState);
base.onCreate(savedInstanceState, persistentState);
}
@Override protected void onStart() {
super.onStart();
base.onStart();
}
@Override protected void onResume() {
super.onResume();
base.onResume();
}
@Override protected void onPause() {
base.onPause();
super.onPause();
}
@Override protected void onStop() {
base.onStop();
super.onStop();
}
@Override protected void onDestroy() {
base.onDestroy();
super.onDestroy();
}
@Override protected void onRestart() {
super.onRestart();
base.onRestart();
}
@Override protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
base.onSaveInstanceState(outState);
}
@Override public void onSaveInstanceState(Bundle outState, PersistableBundle outPersistentState) {
super.onSaveInstanceState(outState, outPersistentState);
base.onSaveInstanceState(outState, outPersistentState);
}
@Override protected void onRestoreInstanceState(Bundle savedInstanceState) {
super.onRestoreInstanceState(savedInstanceState);
base.onRestoreInstanceState(savedInstanceState);
}
@Override
public void onRestoreInstanceState(Bundle savedInstanceState, PersistableBundle persistentState) {
super.onRestoreInstanceState(savedInstanceState, persistentState);
base.onRestoreInstanceState(savedInstanceState, persistentState);
}
@Override protected void onNewIntent(Intent intent) {
super.onNewIntent(intent);
base.onNewIntent(intent);
}
@Override public void onBackPressed() {
super.onBackPressed();
base.onBackPressed();
}
@Override public void onAttachedToWindow() {
super.onAttachedToWindow();
base.onAttachedToWindow();
}
@Override public void onDetachedFromWindow() {
super.onDetachedFromWindow();
base.onDetachedFromWindow();
}
@Override public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
base.onConfigurationChanged(newConfig);
}
@Override protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
base.onActivityResult(requestCode, resultCode, data);
}
@Override public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions,
@NonNull int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
base.onRequestPermissionsResult(requestCode, permissions, grantResults);
}
}
參考:
搜索 「NaviAppCompatActivity」 上https://github.com/trello/navi
這是很好的解決方案,THX,但我想知道是否有另一個。 Bcs不靈活2,如果庫的源代碼會改變,或者我只是不能查看源代碼? –
嗯...在我看來'trello/navi'庫[已經支持'NaviAppCompatActivity'](https://github.com/trello/navi/blob/master/navi/src/main/java/ com/trello/navi/component/support/NaviAppCompatActivity.java)。你甚至不需要做我所做的複製。 – EpicPandaForce