[android-developers] ListView inside a tabhost not displaying content initially
I have a TabActivity containing a series of four tabs and a listview. Each of the tabs reference the same listview. When the activity is initially displayed, the listview is not displayed. However, clicking on another tab will display it correctly and clicking back on the first tab will also display it correctly. The content of the listview is changed depending on the selected tab. Here is my XML layout : ?xml version=1.0 encoding=utf-8? TabHost xmlns:android=http://schemas.android.com/apk/res/android; android:id=@android:id/tabhost android:layout_width=match_parent android:layout_height=match_parent LinearLayout android:layout_width=fill_parent android:layout_height=fill_parent android:orientation=vertical TabWidget android:id=@android:id/tabs android:layout_width=fill_parent android:layout_height=wrap_content / FrameLayout android:id=@android:id/tabcontent android:layout_width=fill_parent android:layout_height=fill_parent ListView android:id=@+id/listPoisFound android:layout_width=match_parent android:layout_height=wrap_content /ListView /FrameLayout /LinearLayout /TabHost The tabs are initialised like this : TabHost tabhost = null; TabHost.TabSpec spec = null; // get the tabhost tabhost = getTabHost(); // create the individual tabs spec = tabhost.newTabSpec(first); spec.setIndicator(First); spec.setContent(R.id.list); tabhost.addTab(spec); spec = tabhost.newTabSpec(second); spec.setIndicator(Second); spec.setContent(R.id.list); tabhost.addTab(spec); spec = tabhost.newTabSpec(third); spec.setIndicator(Third); spec.setContent(R.id.list); tabhost.addTab(spec); spec = tabhost.newTabSpec(fourth); spec.setIndicator(Fourth); spec.setContent(R.id.list); tabhost.addTab(spec); tabhost.setCurrentTab(0); tabhost.setOnTabChangedListener(this); Has anyone come across this problem ? What is the solution ? -- You received this message because you are subscribed to the Google Groups Android Developers group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en
Re: [android-developers] ListView inside a tabhost not displaying content initially
On Wed, Jun 20, 2012 at 11:41 AM, Simon Giddings mr.s.giddi...@gmail.com wrote: I have a TabActivity containing a series of four tabs and a listview. Each of the tabs reference the same listview. I have no idea if this is supported. What is the solution ? Try using separate ListViews, one per tab. -- Mark Murphy (a Commons Guy) http://commonsware.com | http://github.com/commonsguy http://commonsware.com/blog | http://twitter.com/commonsguy Android Training in DC: http://marakana.com/training/android/ -- You received this message because you are subscribed to the Google Groups Android Developers group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en
Re: [android-developers] ListView inside a tabhost not displaying content initially
Just out of curiosity, try doing this: *tabhost.setCurrentTab(1); tabhost.setCurrentTab(0); * Does your list show up at that point? Thanks, Justin Anderson MagouyaWare Developer http://sites.google.com/site/magouyaware On Wed, Jun 20, 2012 at 9:41 AM, Simon Giddings mr.s.giddi...@gmail.comwrote: I have a TabActivity containing a series of four tabs and a listview. Each of the tabs reference the same listview. When the activity is initially displayed, the listview is not displayed. However, clicking on another tab will display it correctly and clicking back on the first tab will also display it correctly. The content of the listview is changed depending on the selected tab. Here is my XML layout : ?xml version=1.0 encoding=utf-8? TabHost xmlns:android=http://schemas.android.com/apk/res/android; android:id=@android:id/tabhost android:layout_width=match_parent android:layout_height=match_parent LinearLayout android:layout_width=fill_parent android:layout_height=fill_parent android:orientation=vertical TabWidget android:id=@android:id/tabs android:layout_width=fill_parent android:layout_height=wrap_content / FrameLayout android:id=@android:id/tabcontent android:layout_width=fill_parent android:layout_height=fill_parent ListView android:id=@+id/listPoisFound android:layout_width=match_parent android:layout_height=wrap_content /ListView /FrameLayout /LinearLayout /TabHost The tabs are initialised like this : TabHost tabhost = null; TabHost.TabSpec spec = null; // get the tabhost tabhost = getTabHost(); // create the individual tabs spec = tabhost.newTabSpec(first); spec.setIndicator(First); spec.setContent(R.id.list); tabhost.addTab(spec); spec = tabhost.newTabSpec(second); spec.setIndicator(Second); spec.setContent(R.id.list); tabhost.addTab(spec); spec = tabhost.newTabSpec(third); spec.setIndicator(Third); spec.setContent(R.id.list); tabhost.addTab(spec); spec = tabhost.newTabSpec(fourth); spec.setIndicator(Fourth); spec.setContent(R.id.list); tabhost.addTab(spec); tabhost.setCurrentTab(0); tabhost.setOnTabChangedListener(this); Has anyone come across this problem ? What is the solution ? -- You received this message because you are subscribed to the Google Groups Android Developers group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en -- You received this message because you are subscribed to the Google Groups Android Developers group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en
Re: [android-developers] ListView inside a tabhost not displaying content initially
Also, what does your OnTabChangedListener code do? Thanks, Justin Anderson MagouyaWare Developer http://sites.google.com/site/magouyaware On Wed, Jun 20, 2012 at 9:46 AM, Justin Anderson magouyaw...@gmail.comwrote: Just out of curiosity, try doing this: *tabhost.setCurrentTab(1); tabhost.setCurrentTab(0); * Does your list show up at that point? Thanks, Justin Anderson MagouyaWare Developer http://sites.google.com/site/magouyaware On Wed, Jun 20, 2012 at 9:41 AM, Simon Giddings mr.s.giddi...@gmail.comwrote: I have a TabActivity containing a series of four tabs and a listview. Each of the tabs reference the same listview. When the activity is initially displayed, the listview is not displayed. However, clicking on another tab will display it correctly and clicking back on the first tab will also display it correctly. The content of the listview is changed depending on the selected tab. Here is my XML layout : ?xml version=1.0 encoding=utf-8? TabHost xmlns:android=http://schemas.android.com/apk/res/android; android:id=@android:id/tabhost android:layout_width=match_parent android:layout_height=match_parent LinearLayout android:layout_width=fill_parent android:layout_height=fill_parent android:orientation=vertical TabWidget android:id=@android:id/tabs android:layout_width=fill_parent android:layout_height=wrap_content / FrameLayout android:id=@android:id/tabcontent android:layout_width=fill_parent android:layout_height=fill_parent ListView android:id=@+id/listPoisFound android:layout_width=match_parent android:layout_height=wrap_content /ListView /FrameLayout /LinearLayout /TabHost The tabs are initialised like this : TabHost tabhost = null; TabHost.TabSpec spec = null; // get the tabhost tabhost = getTabHost(); // create the individual tabs spec = tabhost.newTabSpec(first); spec.setIndicator(First); spec.setContent(R.id.list); tabhost.addTab(spec); spec = tabhost.newTabSpec(second); spec.setIndicator(Second); spec.setContent(R.id.list); tabhost.addTab(spec); spec = tabhost.newTabSpec(third); spec.setIndicator(Third); spec.setContent(R.id.list); tabhost.addTab(spec); spec = tabhost.newTabSpec(fourth); spec.setIndicator(Fourth); spec.setContent(R.id.list); tabhost.addTab(spec); tabhost.setCurrentTab(0); tabhost.setOnTabChangedListener(this); Has anyone come across this problem ? What is the solution ? -- You received this message because you are subscribed to the Google Groups Android Developers group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en -- You received this message because you are subscribed to the Google Groups Android Developers group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en
Re: [android-developers] ListView inside a tabhost not displaying content initially
Wow, I hadn't expected replies so quickly ! @MagouyaWare - To answer your question, the OnTabChangedListener code rebuilds the listview content. I have indeed stepped through this to ensure that it does this correctly before the first display. If I call tabhost.setCurrentTab(1) instead of tabhost.setCurrentTab(0), then the initial display is correct. To answer @Mark Murphy (a Commons Guy), when I subsequently click through the tabs, the single listview is correctly updated and displayed. It just doesn't display correctly upon initial display. On Wednesday, 20 June 2012 17:47:15 UTC+2, MagouyaWare wrote: Also, what does your OnTabChangedListener code do? Thanks, Justin Anderson MagouyaWare Developer http://sites.google.com/site/magouyaware On Wed, Jun 20, 2012 at 9:46 AM, Justin Anderson wrote: Just out of curiosity, try doing this: *tabhost.setCurrentTab(1); tabhost.setCurrentTab(0); * Does your list show up at that point? Thanks, Justin Anderson MagouyaWare Developer http://sites.google.com/site/magouyaware On Wed, Jun 20, 2012 at 9:41 AM, Simon Giddings wrote: I have a TabActivity containing a series of four tabs and a listview. Each of the tabs reference the same listview. When the activity is initially displayed, the listview is not displayed. However, clicking on another tab will display it correctly and clicking back on the first tab will also display it correctly. The content of the listview is changed depending on the selected tab. Here is my XML layout : ?xml version=1.0 encoding=utf-8? TabHost xmlns:android=http://schemas.android.com/apk/res/android; android:id=@android:id/tabhost android:layout_width=match_parent android:layout_height=match_parent LinearLayout android:layout_width=fill_parent android:layout_height=fill_parent android:orientation=vertical TabWidget android:id=@android:id/tabs android:layout_width=fill_parent android:layout_height=wrap_content / FrameLayout android:id=@android:id/tabcontent android:layout_width=fill_parent android:layout_height=fill_parent ListView android:id=@+id/listPoisFound android:layout_width=match_parent android:layout_height=wrap_content /ListView /FrameLayout /LinearLayout /TabHost The tabs are initialised like this : TabHost tabhost = null; TabHost.TabSpec spec = null; // get the tabhost tabhost = getTabHost(); // create the individual tabs spec = tabhost.newTabSpec(first); spec.setIndicator(First); spec.setContent(R.id.list); tabhost.addTab(spec); spec = tabhost.newTabSpec(second); spec.setIndicator(Second); spec.setContent(R.id.list); tabhost.addTab(spec); spec = tabhost.newTabSpec(third); spec.setIndicator(Third); spec.setContent(R.id.list); tabhost.addTab(spec); spec = tabhost.newTabSpec(fourth); spec.setIndicator(Fourth); spec.setContent(R.id.list); tabhost.addTab(spec); tabhost.setCurrentTab(0); tabhost.setOnTabChangedListener(this); Has anyone come across this problem ? What is the solution ? -- You received this message because you are subscribed to the Google Groups Android Developers group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en -- You received this message because you are subscribed to the Google Groups Android Developers group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en
Re: [android-developers] ListView inside a tabhost not displaying content initially
If I call tabhost.setCurrentTab(1) instead of tabhost.setCurrentTab(0), then the initial display is correct. I think you misunderstood me... I wanted you to call both of them... First, set the current tab to 1 and then to 0... Does the listview display correctly on tab 0 if you do this? My guess is that it would. This is probably not the best way to solve the problem though, but would work be a potential workaround if all else fails. To answer your question, the OnTabChangedListener code rebuilds the listview content. I noticed you are setting the OnTabChangedListener after setting the current tab... What happens if you try setting the change listener first? You may need to verify that this method gets called when you do this... if the tab host defaults the current tab to 0 and then you set it to 0 it may decide it doesn't need to do anything... In which case, you would need to call the method for a tab change manually yourself first. To answer @Mark Murphy (a Commons Guy), when I subsequently click through the tabs, the single listview is correctly updated and displayed. It just doesn't display correctly upon initial display. Just because it seems to work doesn't mean it is actually supported. If this is not the intended way to use a tabhost then it may just work as a side-effect of other things, but you may see weirdness as a result of it... If this isn't supposed to be supported then the devs likely have not tested this scenario... Thanks, Justin Anderson MagouyaWare Developer http://sites.google.com/site/magouyaware On Wed, Jun 20, 2012 at 10:00 AM, Simon Giddings mr.s.giddi...@gmail.comwrote: Wow, I hadn't expected replies so quickly ! @MagouyaWare - To answer your question, the OnTabChangedListener code rebuilds the listview content. I have indeed stepped through this to ensure that it does this correctly before the first display. If I call tabhost.setCurrentTab(1) instead of tabhost.setCurrentTab(0), then the initial display is correct. To answer @Mark Murphy (a Commons Guy), when I subsequently click through the tabs, the single listview is correctly updated and displayed. It just doesn't display correctly upon initial display. On Wednesday, 20 June 2012 17:47:15 UTC+2, MagouyaWare wrote: Also, what does your OnTabChangedListener code do? Thanks, Justin Anderson MagouyaWare Developer http://sites.google.com/site/**magouyawarehttp://sites.google.com/site/magouyaware On Wed, Jun 20, 2012 at 9:46 AM, Justin Anderson wrote: Just out of curiosity, try doing this: *tabhost.setCurrentTab(1); tabhost.setCurrentTab(0); * Does your list show up at that point? Thanks, Justin Anderson MagouyaWare Developer http://sites.google.com/site/**magouyawarehttp://sites.google.com/site/magouyaware On Wed, Jun 20, 2012 at 9:41 AM, Simon Giddings wrote: I have a TabActivity containing a series of four tabs and a listview. Each of the tabs reference the same listview. When the activity is initially displayed, the listview is not displayed. However, clicking on another tab will display it correctly and clicking back on the first tab will also display it correctly. The content of the listview is changed depending on the selected tab. Here is my XML layout : ?xml version=1.0 encoding=utf-8? TabHost xmlns:android=http://schemas.**android.com/apk/res/androidhttp://schemas.android.com/apk/res/android android:id=@android:id/**tabhost android:layout_width=match_**parent android:layout_height=match_**parent LinearLayout android:layout_width=fill_**parent android:layout_height=fill_**parent android:orientation=vertical TabWidget android:id=@android:id/tabs android:layout_width=fill_**parent android:layout_height=wrap_**content / FrameLayout android:id=@android:id/**tabcontent android:layout_width=fill_**parent android:layout_height=fill_**parent ListView android:id=@+id/**listPoisFound android:layout_width=match_**parent android:layout_height=wrap_**content /ListView /FrameLayout /LinearLayout /TabHost The tabs are initialised like this : TabHost tabhost = null; TabHost.TabSpec spec = null; // get the tabhost tabhost = getTabHost(); // create the individual tabs spec = tabhost.newTabSpec(first); spec.setIndicator(First); spec.setContent(R.id.list); tabhost.addTab(spec); spec = tabhost.newTabSpec(second); spec.setIndicator(Second); spec.setContent(R.id.list); tabhost.addTab(spec); spec = tabhost.newTabSpec(third); spec.setIndicator(Third); spec.setContent(R.id.list); tabhost.addTab(spec); spec = tabhost.newTabSpec(fourth);
Re: [android-developers] ListView inside a tabhost not displaying content initially
Hi Justin, Yes, you are right. I went too fast in my reply. I did indeed make the two calls and it did indeed work. I was wanting to limit the number of resources needed in this activity - where in my use of one unique ListView. After this short discussion, I think I will try to use a single list view per tab and see what the performance hit will be. On Wednesday, 20 June 2012 18:09:56 UTC+2, MagouyaWare wrote: If I call tabhost.setCurrentTab(1) instead of tabhost.setCurrentTab(0), then the initial display is correct. I think you misunderstood me... I wanted you to call both of them... First, set the current tab to 1 and then to 0... Does the listview display correctly on tab 0 if you do this? My guess is that it would. This is probably not the best way to solve the problem though, but would work be a potential workaround if all else fails. To answer your question, the OnTabChangedListener code rebuilds the listview content. I noticed you are setting the OnTabChangedListener after setting the current tab... What happens if you try setting the change listener first? You may need to verify that this method gets called when you do this... if the tab host defaults the current tab to 0 and then you set it to 0 it may decide it doesn't need to do anything... In which case, you would need to call the method for a tab change manually yourself first. To answer @Mark Murphy (a Commons Guy), when I subsequently click through the tabs, the single listview is correctly updated and displayed. It just doesn't display correctly upon initial display. Just because it seems to work doesn't mean it is actually supported. If this is not the intended way to use a tabhost then it may just work as a side-effect of other things, but you may see weirdness as a result of it... If this isn't supposed to be supported then the devs likely have not tested this scenario... Thanks, Justin Anderson MagouyaWare Developer http://sites.google.com/site/magouyaware On Wed, Jun 20, 2012 at 10:00 AM, Simon Giddings wrote: Wow, I hadn't expected replies so quickly ! @MagouyaWare - To answer your question, the OnTabChangedListener code rebuilds the listview content. I have indeed stepped through this to ensure that it does this correctly before the first display. If I call tabhost.setCurrentTab(1) instead of tabhost.setCurrentTab(0), then the initial display is correct. To answer @Mark Murphy (a Commons Guy), when I subsequently click through the tabs, the single listview is correctly updated and displayed. It just doesn't display correctly upon initial display. On Wednesday, 20 June 2012 17:47:15 UTC+2, MagouyaWare wrote: Also, what does your OnTabChangedListener code do? Thanks, Justin Anderson MagouyaWare Developer http://sites.google.com/site/**magouyawarehttp://sites.google.com/site/magouyaware On Wed, Jun 20, 2012 at 9:46 AM, Justin Anderson wrote: Just out of curiosity, try doing this: *tabhost.setCurrentTab(1); tabhost.setCurrentTab(0); * Does your list show up at that point? Thanks, Justin Anderson MagouyaWare Developer http://sites.google.com/site/**magouyawarehttp://sites.google.com/site/magouyaware On Wed, Jun 20, 2012 at 9:41 AM, Simon Giddings wrote: I have a TabActivity containing a series of four tabs and a listview. Each of the tabs reference the same listview. When the activity is initially displayed, the listview is not displayed. However, clicking on another tab will display it correctly and clicking back on the first tab will also display it correctly. The content of the listview is changed depending on the selected tab. Here is my XML layout : ?xml version=1.0 encoding=utf-8? TabHost xmlns:android=http://schemas.**android.com/apk/res/androidhttp://schemas.android.com/apk/res/android android:id=@android:id/**tabhost android:layout_width=match_**parent android:layout_height=match_**parent LinearLayout android:layout_width=fill_**parent android:layout_height=fill_**parent android:orientation=vertical TabWidget android:id=@android:id/tabs android:layout_width=fill_**parent android:layout_height=wrap_**content / FrameLayout android:id=@android:id/**tabcontent android:layout_width=fill_**parent android:layout_height=fill_**parent ListView android:id=@+id/**listPoisFound android:layout_width=match_**parent android:layout_height=wrap_**content /ListView /FrameLayout /LinearLayout /TabHost The tabs are initialised like this : TabHost tabhost = null; TabHost.TabSpec spec = null; // get the tabhost tabhost = getTabHost(); // create the individual tabs spec =