我有一个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
答案 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.