2011-12-12 53 views
0

我將minSdkVersion設置爲8,targetSdkVersion也設置爲8,除了一件事以外,一切似乎都沒有問題。我的標籤欄(自定義標籤欄)圖形縮小到其大小的一半。應用中的所有其他圖形看起來都很好。值得注意的是,標籤欄圖形是我在應用程序啓動時以編程方式調整大小的唯一圖形。這是從我的setUpTabs片段()方法:在清單中設置minSdkVersion和targetSdkVersion導致一些圖形比平常要小

public void setUpTabs() 
{ 
    //Tab setup 
    TabHost mTabHost = getTabHost(); 

    ListView pastTripsListView=(ListView)findViewById(R.id.pastTrips); 
    //ListView settingsListView=(ListView)findViewById(R.id.settings); 
    ListView upcomingTripsListView=(ListView)findViewById(R.id.upcomingTrips); 

    pastTripsListView.setAdapter(pastTripsAdapter); 
    pastTripsListView.setOnItemClickListener(pastTripsAdapter); 

    upcomingTripsListView.setAdapter(upcomingTripsAdapter); 
    upcomingTripsListView.setOnItemClickListener(upcomingTripsAdapter); 

    mTabHost.addTab(mTabHost.newTabSpec("tab_test1").setIndicator("").setContent(R.id.pastTrips)); 
    mTabHost.addTab(mTabHost.newTabSpec("tab_test2").setIndicator("").setContent(R.id.settings)); 
    mTabHost.addTab(mTabHost.newTabSpec("tab_test3").setIndicator("").setContent(R.id.upcomingTrips)); 

    mTabHost.getTabWidget().getChildAt(0).getLayoutParams().height = 49; 
    mTabHost.getTabWidget().getChildAt(1).getLayoutParams().height = 49; 
    mTabHost.getTabWidget().getChildAt(2).getLayoutParams().height = 49; 

    RelativeLayout tabLayoutLeft = (RelativeLayout) mTabHost.getTabWidget().getChildAt(0); 
    tabLayoutLeft.setBackgroundDrawable(getResources().getDrawable(R.drawable.tab_indicator_left)); 

    RelativeLayout tabLayoutCenter = (RelativeLayout) mTabHost.getTabWidget().getChildAt(1); 
    tabLayoutCenter.setBackgroundDrawable(getResources().getDrawable(R.drawable.tab_indicator_center)); 

    RelativeLayout tabLayoutRight = (RelativeLayout) mTabHost.getTabWidget().getChildAt(2); 
    tabLayoutRight.setBackgroundDrawable(getResources().getDrawable(R.drawable.tab_indicator_right)); 

    mTabHost.setCurrentTab(2); 
    //End Tab setup 
} 

現在,49我設置的高度在像素或浸???這可能是導致問題的原因嗎?我可以將這些標籤放在xml文件中嗎?

此外,當我將鼠標懸停在單詞「高度」智能感知告訴我下面的:有關視圖多高都想成爲

信息。可以是常量之一FILL_PARENT(由API級別8中的MATCH_PARENT替換)或WRAP_CONTENT。或確切的大小。

當我嘗試MATCH_PARENT時說它無法解析。我在哪裏可以得到這個?

非常感謝。

+0

恕我直言,這一切行:'mTabHost.getTabWidget()getChildAt(X).getLayoutParams()高度= 49;'其實什麼也不做...... – Selvin

回答

1

我不這樣,你應該這樣做:

mTabHost.getTabWidget().getChildAt(0).getLayoutParams().height = 49; 

,並期望它堅持。據我所知你應該做的事:

RelativeLayout.LayoutParams lp = mTabHost.getTabWidget().getChildAt(0).getLayoutParams(); 
lp.height = 49; 
mTabHost.getTabWidget().getChildAt(0).setLayoutParams(lp); 

此外,您在高度設置爲固定像素。如果您希望您的小部件在多種屏幕分辨率下保持相同高度,則應始終使用dip。從浸像素的轉化很簡單:

final float scale = getResources().getDisplayMetrics().density; 
int pixels = 49 * scale + 0.5; 
相關問題