Note that there are some explanatory texts on larger screens.

plurals
  1. POScreen becomes blank for long time while loading SherlockFragmentActivity with fragments
    text
    copied!<p>I am implementing jeremyfeinstein sliding menu library. for this I have an activity which extends SherlockFragmentActivity. for this activity I have two fragments one is for left menu and another is for Main screen. Everything is working fine and smooth but still I have a problem that is when my Sliding menu activity starts, it becomes blank for 8-10 seconds. after 8-10 seconds my main screen fragment becomes visible. <strong>this is my base class:</strong></p> <pre><code> public class SlidingFragmentActivity extends SherlockFragmentActivity implements SlidingActivityBase { private SlidingActivityHelper mHelper; /* (non-Javadoc) * @see android.support.v4.app.FragmentActivity#onCreate(android.os.Bundle) */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); mHelper = new SlidingActivityHelper(this); mHelper.onCreate(savedInstanceState); } /* (non-Javadoc) * @see android.app.Activity#onPostCreate(android.os.Bundle) */ @Override public void onPostCreate(Bundle savedInstanceState) { super.onPostCreate(savedInstanceState); mHelper.onPostCreate(savedInstanceState); } /* (non-Javadoc) * @see android.app.Activity#findViewById(int) */ @Override public View findViewById(int id) { View v = super.findViewById(id); if (v != null) return v; return mHelper.findViewById(id); } /* (non-Javadoc) * @see android.support.v4.app.FragmentActivity#onSaveInstanceState(android.os.Bundle) */ @Override protected void onSaveInstanceState(Bundle outState) { super.onSaveInstanceState(outState); mHelper.onSaveInstanceState(outState); } /* (non-Javadoc) * @see android.app.Activity#setContentView(int) */ @Override public void setContentView(int id) { setContentView(getLayoutInflater().inflate(id, null)); } /* (non-Javadoc) * @see android.app.Activity#setContentView(android.view.View) */ @Override public void setContentView(View v) { setContentView(v, new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT)); } /* (non-Javadoc) * @see android.app.Activity#setContentView(android.view.View, android.view.ViewGroup.LayoutParams) */ @Override public void setContentView(View v, LayoutParams params) { super.setContentView(v, params); mHelper.registerAboveContentView(v, params); } /* (non-Javadoc) * @see com.jeremyfeinstein.slidingmenu.lib.app.SlidingActivityBase#setBehindContentView(int) */ public void setBehindContentView(int id) { setBehindContentView(getLayoutInflater().inflate(id, null)); } /* (non-Javadoc) * @see com.jeremyfeinstein.slidingmenu.lib.app.SlidingActivityBase#setBehindContentView(android.view.View) */ public void setBehindContentView(View v) { setBehindContentView(v, new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT)); } /* (non-Javadoc) * @see com.jeremyfeinstein.slidingmenu.lib.app.SlidingActivityBase#setBehindContentView(android.view.View, android.view.ViewGroup.LayoutParams) */ public void setBehindContentView(View v, LayoutParams params) { mHelper.setBehindContentView(v, params); } /* (non-Javadoc) * @see com.jeremyfeinstein.slidingmenu.lib.app.SlidingActivityBase#getSlidingMenu() */ public SlidingMenu getSlidingMenu() { return mHelper.getSlidingMenu(); } /* (non-Javadoc) * @see com.jeremyfeinstein.slidingmenu.lib.app.SlidingActivityBase#toggle() */ public void toggle() { mHelper.toggle(); } /* (non-Javadoc) * @see com.jeremyfeinstein.slidingmenu.lib.app.SlidingActivityBase#showAbove() */ public void showContent() { mHelper.showContent(); } /* (non-Javadoc) * @see com.jeremyfeinstein.slidingmenu.lib.app.SlidingActivityBase#showBehind() */ public void showMenu() { mHelper.showMenu(); } /* (non-Javadoc) * @see com.jeremyfeinstein.slidingmenu.lib.app.SlidingActivityBase#showSecondaryMenu() */ public void showSecondaryMenu() { mHelper.showSecondaryMenu(); } /* (non-Javadoc) * @see com.jeremyfeinstein.slidingmenu.lib.app.SlidingActivityBase#setSlidingActionBarEnabled(boolean) */ public void setSlidingActionBarEnabled(boolean b) { mHelper.setSlidingActionBarEnabled(b); } /* (non-Javadoc) * @see android.app.Activity#onKeyUp(int, android.view.KeyEvent) */ @Override public boolean onKeyUp(int keyCode, KeyEvent event) { boolean b = mHelper.onKeyUp(keyCode, event); if (b) return b; return super.onKeyUp(keyCode, event); } } </code></pre> <p>Here is my Main activity which loads fragments</p> <pre><code>public class SliderMenuMainActivity extends SlidingFragmentActivity { private Fragment mContent; ImageButton btnToggle,refresh; String ns = Context.NOTIFICATION_SERVICE; public static int msg_count = 0; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); if(obj==null) obj=new Progress_Dialog(this); obj.setCancelable(false); obj.onPreExecute("MAIN Screen"); if (savedInstanceState != null) mContent = getSupportFragmentManager().getFragment(savedInstanceState, "mContent"); prepareScreen(); } private void prepareScreen() { setContentView(R.layout.activity_slider_menu_main); ActionBar ab = getSherlock().getActionBar(); LayoutInflater li = LayoutInflater.from(this); View customView = li.inflate(R.layout.custom_titlebar, null); customView.setLayoutParams(new ActionBar.LayoutParams(ActionBar.LayoutParams.MATCH_PARENT ,ActionBar.LayoutParams.MATCH_PARENT)); ab.setCustomView(customView); ab.setDisplayShowHomeEnabled(false); ab.setDisplayShowCustomEnabled(true); if (findViewById(R.id.menu_frame) == null) { setBehindContentView(R.layout.menu_frame); getSlidingMenu().setSlidingEnabled(true); getSlidingMenu().setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN); // show home as up so we can toggle //getSupportActionBar().setDisplayHomeAsUpEnabled(true); } else { // add a dummy view View v = new View(this); setBehindContentView(v); getSlidingMenu().setSlidingEnabled(false); getSlidingMenu().setTouchModeAbove(SlidingMenu.TOUCHMODE_NONE); } if (mContent == null) mContent = new MainScreenFragment(); getSupportFragmentManager().beginTransaction().replace(R.id.content_frame, mContent).commit(); // set the Behind View Fragment getSupportFragmentManager().beginTransaction().replace(R.id.menu_frame, new MenuFragment()).commit(); // customize the SlidingMenu SlidingMenu sm = getSlidingMenu(); sm.setBehindOffsetRes(R.dimen.slidingmenu_offset); sm.setShadowWidthRes(R.dimen.shadow_width); sm.setShadowDrawable(R.drawable.shadow); sm.setBehindScrollScale(0.25f); sm.setFadeDegree(0.25f); setSlidingActionBarEnabled(false); } @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case android.R.id.home: toggle(); } return super.onOptionsItemSelected(item); } @Override public void onSaveInstanceState(Bundle outState) { super.onSaveInstanceState(outState); getSupportFragmentManager().putFragment(outState, "mContent", mContent); } public void switchContent(final Fragment fragment) { mContent = fragment; getSupportFragmentManager() .beginTransaction() .replace(R.id.content_frame, fragment) .commit(); Handler h = new Handler(); h.postDelayed(new Runnable() { public void run() { getSlidingMenu().showContent(); } }, 50); } @Override public void onResume() { super.onResume(); if(obj!=null) obj.onPostExecute(); } } </code></pre> <p>So please help me with this and show me a way to overcome this problem. thanks in advance.</p> <h2>EDIT 1</h2> <p>I have placed all the code to the onResume() but it still have same problem. now it is taking about 2 to 3 second to become activity visible.why it is taking this amount of time when I don't have any code into onCreate(). I have removed all the libraries and now I am using only support library(4 and 7) with navigation drawer with same result. </p>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload