我有一个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。因此它们将分布在整个布局中。

09-10 08:33
查看更多