选项卡内容在Android应用程序中重叠

时间:2011-02-11 09:26:29

标签: android tabactivity

我有一个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 );
}

1 个答案:

答案 0 :(得分:0)

我得出的结论是TabHost会假设一切都已经看不见了。当您选择初始选项卡时,它只会显示它。因此,如果您将所有视图设置为隐形,那么您应该没问题。在构造适当的TabContentFactory之前,我只是将视图(在我的例子中是一个简单的TextView)设置为不可见。