2011-06-29 14 views
0

タブベースのアプリケーションを作成しました。タブの1つに、アダプタを使用して表形式のデータが表示される内部タブもあります。 Android 2.1搭載のすべてのデバイスで完全にOKです。しかし、Android 2.2デバイスを搭載したすべてのデバイスでは、上の黒い画面しか表示されない最初のタブのみを表示しています。私は参照のための2つの異なるスクリーンショットを与えました。 tabactivityFroyoのタブレイアウトの問題

ため

2.1デバイスのスクリーンショット

Screenshot of 2.1 device

2.2デバイスのスクリーンショット

Screenshot of 2.2 device

XMLこの種の問題を引き起こす可能性が何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){} 
    } 
} 

<?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> 

コード?

+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でprobを与えました。それはなぜそのような問題を与えているのですか?