平均间距 TabWidget android 中的所有视图



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

现在我在其中添加了自定义图像视图:

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

它们的宽度WRAP_CONTENT

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

最新更新