Note that there are some explanatory texts on larger screens.

plurals
  1. POTab Widget not displaying correctly onResume()
    primarykey
    data
    text
    <p>I'm using a custom TabWidget to display my tabs. The tabs work wonderfully when I first run the program. Everything looks beautiful. However, when I reload the program and, according the logcat, the onResume() method is called on my Tab Widget, the TabWidget displays only the top half of the widget. Here is the XML for my TabWidget.</p> <pre><code>&lt;?xml version="1.0" encoding="utf-8"?&gt; &lt;TabHost xmlns:android="http://schemas.android.com/apk/res/android" android:id="@android:id/tabhost" android:layout_width="fill_parent" android:layout_height="fill_parent" &gt; &lt;RelativeLayout android:layout_width="fill_parent" android:layout_height="fill_parent"&gt; &lt;FrameLayout android:id="@android:id/tabcontent" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_above="@android:id/tabs"/&gt; &lt;TabWidget android:id="@android:id/tabs" android:layout_width="fill_parent" android:layout_height="55dp" android:layout_alignParentBottom="true" /&gt; &lt;/RelativeLayout&gt; &lt;/TabHost&gt; </code></pre> <p>It's pretty plain vanilla stuff here. Changing the layout_height doesn't help. </p> <p>I am currently not implementing onResume in my TabWidget.java. But heres the code anyway.</p> <pre><code>public class TabWidget extends TabActivity { private TabHost mTabHost; private void setupTabHost() { mTabHost = (TabHost) findViewById(android.R.id.tabhost); mTabHost.setup(); } /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); requestWindowFeature(Window.FEATURE_NO_TITLE); setContentView(R.layout.tabs); Resources res = getResources(); // Resource object to get Drawables TabHost tabHost = (TabHost) findViewById(android.R.id.tabhost); // The // activity // TabHost TabHost.TabSpec spec; // Resusable TabSpec for each tab Intent intent; // Reusable Intent for each tab setupTabHost(); // mTabHost.getTabWidget().setDividerDrawable(R.drawable.tab_divider); // Dealer tab Intent intentDealer = new Intent().setClass(this, DealerActivity.class); int iconDealer = (R.drawable.ic_tab_dealer); setupTab("Dealer", intentDealer, iconDealer); // Department tab Intent intentDept = new Intent().setClass(this, DeptActivity.class); int iconDept = R.drawable.ic_tab_dept; setupTab("Departments", intentDept, iconDept); // PostBoard Activity Intent intentBoard = new Intent().setClass(this, BoardActivity.class); int iconBoard = R.drawable.ic_tab_board; setupTab("Postboard", intentBoard, iconBoard); // Social Network connection // Check first to see if there are Social Network links if not don't // show tab. if (Startup.msMain.locations[Startup.nChosenLocation].social_media_feeds.length == 0) { } else { Intent intentSocial = new Intent().setClass(this, SocialActivity.class); int iconSocial = R.drawable.ic_tab_social; setupTab("Social Media", intentSocial, iconSocial); } // Links Activity Intent intentLinks = new Intent().setClass(this, LinksActivity.class); int iconLinks = R.drawable.ic_tab_link; setupTab("Links", intentLinks, iconLinks); // set startup tab tabHost.setCurrentTab(0); } private void setupTab(final String tag, Intent intent, int img) { View tabview = createTabView(mTabHost.getContext(), tag, img); TabSpec setContent = mTabHost.newTabSpec(tag).setIndicator(tabview) .setContent(intent); mTabHost.addTab(setContent); } private static View createTabView(final Context context, final String text, int img) { View view = LayoutInflater.from(context) .inflate(R.layout.tabs_bg, null); TextView tv = (TextView) view.findViewById(R.id.tabsText); tv.setText(text); ImageView icon = (ImageView) view.findViewById(R.id.tabsIcon); icon.setBackgroundDrawable(context.getResources().getDrawable(img)); return view; } } </code></pre> <p>And for thoroughness here's my logcat when the error appears.</p> <pre><code> 12-28 10:10:00.963: I/ActivityManager(1305): Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=com.zocalolabs.demo/.SplashScreen } from pid 1470 12-28 10:10:01.034: W/InputManagerService(1305): Starting input on non-focused client com.android.internal.view.IInputMethodClient$Stub$Proxy@40777988 (uid=10001 pid=1470) 12-28 10:10:01.073: I/ActivityManager(1305): Resumed Activity: com.zocalolabs.demo/.TabWidget totalTime: 110 ms </code></pre> <p>Is there a way to force my widget activity to redraw on onResume() or onPause() force it to full on kill the Activity thus forcing it to the onCreate method again? Or is there another way to attack this problem? Thanks for any insights! </p>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

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