Ho una super classe che si trova in una libreria. Questa libreria si occupa di inizializzare alcuni componenti di base del layout e altre cose. Il mio problema è che ci vogliono 1.x secondi per caricare il layout e mostra il layout predefinito per un po ', prima di impostare il layout specificato per il bambino.Caricamento lento del layout
questo è il metodo della mia classe super:
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();
}
questo è chiamato in questo modo:
@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);
}
L'applicazione funziona come un fascino, ma ci vuole, come ho detto in giro 1. x secondi per caricare il layout passato dalla classe figlio. Perché succede?
A richiesta, questo è il mio metodo initializeSlideMenu()
:
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);
}
Sono un po 'irritato che si chiami 'InitializeWindow' a _constructor_. Perché la tua superclasse non fa tutto in 'onCreate()'? - Cosa succede in 'initializeSlidingMenu()'? –
Certo, il mio male troppo presto la mattina. In 'initializeSlidingMenu()' Initalizzo il menu di scorrimento, per favore vedi la mia modifica in pochi secondi. –
@ user370305 la baseclass non ha alcun layout, viene mostrato il layout "predefinito" di Android, come il nome dell'applicazione nella barra di azione, con un layout bianco. –