我有一个TabActivity来显示两个列表,每个选项卡中有一个列表。启动应用程序时,两个选项卡的内容显示为重叠。但是当选择其他选项卡时,它的工作正常。请帮帮我
我的代码是:
@Override
public void onCreate( Bundle savedInstanceState )
{
super.onCreate( savedInstanceState );
setContentView( R.layout.tab_layout );
Resources res = getResources(); // Resource object to get Drawables
tabHost = getTabHost();
tabHost.setOnTabChangedListener( this );
// setup list view 1
listView1 = ( ListView ) findViewById( R.id.list1 );
// setup list view 2
listView2 = ( ListView ) findViewById( R.id.list2 );
// add views to tab host
tabHost.addTab( tabHost.newTabSpec( LIST1_TAB_TAG ).setIndicator( LIST1_TAB_TAG,
res.getDrawable( R.drawable.rupees ) ).setContent( new TabContentFactory()
{
public View createTabContent( String arg0 )
{
return listView1;
}
} ) );
tabHost.addTab( tabHost.newTabSpec( LIST2_TAB_TAG ).setIndicator( LIST2_TAB_TAG,
res.getDrawable( R.drawable.food ) ).setContent( new TabContentFactory()
{
public View createTabContent( String arg0 )
{
return listView2;
}
} ) );
// Set listener for list1
listView1.setOnItemClickListener( new OnItemClickListener()
{
public void onItemClick( AdapterView parent, View view, int position, long id )
{
onListItemClick( id );
}
} );
// Set listener for list2
listView2.setOnItemClickListener( new OnItemClickListener()
{
public void onItemClick( AdapterView parent, View view, int position, long id )
{
onListItemClick( id );
}
} );
listView2.setVisibility( View.INVISIBLE );
}
答案 0 :(得分:0)
我得出的结论是TabHost会假设一切都已经看不见了。当您选择初始选项卡时,它只会显示它。因此,如果您将所有视图设置为隐形,那么您应该没问题。在构造适当的TabContentFactory之前,我只是将视图(在我的例子中是一个简单的TextView)设置为不可见。