Ich habe eine Super-Klasse, die in einer Bibliothek ist. Diese Bibliothek kümmert sich um die Initialisierung einiger grundlegender Layoutkomponenten und anderer Dinge. Mein Problem ist, dass es 1.x Sekunden dauert, um das Layout zu laden, und zeigt das Standard-Layout für eine Weile, bevor das Kind-spezifizierte Layout gesetzt wird. Langsame Laden des Layouts
Dies ist die Methode meiner Super-Klasse:
public void InitializeWindow(Activity act, int layoutResourceId, String windowTitle,
Object menuAdapter, int slideMenuMode) {
super.setContentView(layoutResourceId);
super.setBehindContentView(R.layout.menu_frame);
this.menuAdapter = menuAdapter;
this.slideMenuMode = slideMenuMode;
setWindowTitle(windowTitle);
initializeSlidingMenu();
}
Diese so genannt wird:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
super.InitializeWindow(this, R.layout.activity_home, "\t\tHome",
new MenuAdapter(this, R.menu.slide_menu), SlidingMenu.TOUCHMODE_FULLSCREEN);
}
Die Anwendung funktioniert wie ein Zauber, aber es dauert, wie gesagt um 1. x Sekunden, um das von der Kindklasse übergebene Layout zu laden. Warum passiert das?
Auf Wunsch, dies ist meine initializeSlideMenu()
Methode:
public void initializeSlidingMenu() {
this.setSlidingActionBarEnabled(true);
getSlidingMenu().setBehindOffsetRes(R.dimen.actionbar_home_width);
getSlidingMenu().setShadowWidthRes(R.dimen.shadow_width);
getSlidingMenu().setShadowDrawable(R.drawable.shadow);
getSlidingMenu().setTouchModeAbove(slideMenuMode);
getSlidingMenu().setBehindScrollScale(0.25f);
ListView v = new ListView(this);
v.setBackgroundColor(Color.parseColor("#000000"));
v.setAdapter((ListAdapter) menuAdapter);
getSlidingMenu().setMenu(v);
}
Ich bin ein bisschen irritiert, dass Sie 'InitializeWindow' ein _constructor_ aufrufen. Warum macht deine Superklasse nicht alles in 'onCreate()'? - Was ist los in 'initializeSlidingMenu()'? –
Natürlich ist mein Bad zu früh am Morgen schlecht. In der 'initializeSlidingMenu()' initialisiere ich das gleitende Menü, bitte sehen Sie meine Bearbeitung in ein paar Sekunden. –
@ user370305 Die Basisklasse hat kein Layout, das "Standard" -Android-Layout wird wie der Anwendungsname in der Aktionsleiste mit einem weißen Layout angezeigt. –