我有一个tabWidget定义为:
<TabWidget
android:layout_alignParentBottom="true"
android:id="@android:id/tabs"
android:paddingBottom="10dp"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center|bottom"
android:weightSum="5"
android:background="@drawable/bottom_bar_without_bg"
/>
现在,我在其中添加自定义ImageViews:
Drawable d = getResources().getDrawable(R.drawable.tabbar_button_home);
ImageView img1 = new ImageView(this);
img1.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
img1.setImageDrawable(d);
TabHost.TabSpec tSpecHome = tHost.newTabSpec("timeline");
tSpecHome.setIndicator(img1);
tSpecHome.setContent(new MyTabContent(getBaseContext()));
tHost.addTab(tSpecHome);
此代码的问题是所有图像都在中间彼此隔开。
例如
abcdef
我希望它们伸展到全宽并在它们之间留出空间,例如
a b c d e
最佳答案
如下更新代码:
Drawable d = getResources().getDrawable(R.drawable.tabbar_button_home);
ImageView img1 = new ImageView(this);
img1.setLayoutParams(new LayoutParams(0, LayoutParams.WRAP_CONTENT, 1.0f)); // this line changed
img1.setImageDrawable(d);
说明:
LayoutParams
构造函数中的第三个参数是weight
。现在,每个图像视图的权重为1.0f
。因此它们将分布在整个布局中。