同样间隔TabWidget android中的所有视图

时间:2013-12-17 05:42:34

标签: java android eclipse

我有一个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"
    />

现在我在其中添加自定义ImageView:

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

2 个答案:

答案 0 :(得分:2)

按如下方式更新代码:

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。因此,它们将在整个布局中传播。

答案 1 :(得分:0)

你的宽度为WRAP_CONTENT

相反,它们应设置为0dp的宽度,每个的布局重力为1.