我将minSdkVersion设置为8,将targetSdkVersion设置为8,除了一件事,一切似乎都没问题。我的标签栏(自定义标签栏)图形缩小到大小的一半。应用程序中的所有其他图形看起来都很好。值得注意的是,标签栏图形是我在应用程序启动时以编程方式调整的唯一图形。这是我的setUpTabs()方法的一个片段:
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 :(得分:1)
我不这样做你应该这样做:
mTabHost.getTabWidget().getChildAt(0).getLayoutParams().height = 49;
期待它坚持下去。 AFAIK你应该这样做:
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;