2011-06-29 50 views
0

我已经创建了一个基于选项卡的应用程序,在其中一个选项卡中,还有内部选项卡,其中一些数据以使用适配器的表格格式显示。使用Android 2.1的所有设备都完全可以。但在所有使用Android 2.2设备的设备中,只显示上面只有黑屏的第一个标签。我给出了两个截图供参考。Froyo中的选项卡布局问题

截图设备

Screenshot of 2.1 device

截图的2.2设备

Screenshot of 2.2 device

XML为tabactivity 2.1

<?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="fill_parent" 
    android:layout_height="fill_parent"> 
    <LinearLayout 
     android:id="@+id/myinfotrackerlayout" 
     android:orientation="vertical" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent"> 
     <FrameLayout 
      android:id="@android:id/tabcontent" 
      android:layout_width="fill_parent" 
      android:layout_height="fill_parent" 
      android:layout_weight="1"/> 
     <TabWidget 
      android:id="@android:id/tabs" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:layout_weight="0" 
      android:gravity="bottom" 
      android:isScrollContainer="false" 
      android:scrollbarAlwaysDrawHorizontalTrack="false" 
      android:scrollbarAlwaysDrawVerticalTrack="false" 
      android:scrollbars="none" 
      android:background="#FFFFFF"/> 
    </LinearLayout> 
</TabHost> 

代码Tabactivity

public class MyInfoTracker extends TabActivity { 
    private int tabid = 0; 
    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.myinfotracker); 
     try{ 
      final TabHost innerTabHost = getTabHost(); // The activity TabHost 
      TabHost.TabSpec spec; // Resusable TabSpec for each tab 

      Intent intent; // Reusable Intent for each tab 
      Intent myint = this.getIntent(); 
      tabid = myint.getIntExtra("tab_id", 0); 

      // Create an Intent to launch an Activity for the tab (to be reused) 
      intent = new Intent().setClass(this, MyinfoActivity.class).addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
      intent.putExtra("addType","CD4"); 

      // Initialize a TabSpec for each tab and add it to the TabHost 
      spec = innerTabHost.newTabSpec("CD4Count").setIndicator("CD4 Count").setContent(intent); 
      innerTabHost.addTab(spec); 

      // Do the same for the other tabs 
      intent = new Intent().setClass(this, MyinfoActivity.class).addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
      intent.putExtra("addType","VL"); 
      spec = innerTabHost.newTabSpec("ViralLoad").setIndicator("Viral Load").setContent(intent); 
      innerTabHost.addTab(spec); 

      // Do the same for the other tabs 
      intent = new Intent().setClass(this, MyinfoActivity.class).addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
      intent.putExtra("addType","Wt"); 
      spec = innerTabHost.newTabSpec("Weight").setIndicator("Weight").setContent(intent); 
      innerTabHost.addTab(spec); 

      innerTabHost.setScrollbarFadingEnabled(false); 
      innerTabHost.setScrollContainer(false); 

      innerTabHost.setCurrentTab(tabid); 
     }catch(Exception e){} 
    } 
} 

什么可能会导致这种类型的问题?

+1

您是否已经检查了2.1 => 2.2的更改? http://developer.android.com/sdk/android-2.2.html#api “布局属性fill_parent重命名为match_parent。” – Milde

+0

你是从xml设置标签吗?如果是粘贴xml布局。 – PravinCG

回答

0

这不是所有标签相关的概率。在onCreate()有一个代码 -

datePickerDialog = new DatePickerDialog(getParent(), ButtonTestDateListener, 
       mYear, mMonth, mDay); 

我刚才宣布mYearmMonthmDay为整数,但没有初始化在那里。它在2.1中工作正常,但在2.2中给出了概率。这就是为什么它给这样的问题。