我想在线性布局中水平放置4个按钮。为了平均分配它们,我在每个按钮中设置android:layout_weight="1"
。问题是按钮的宽度不受尊重,它们填满了整个线性布局。这适用于imageviews,为什么不使用按钮?
由于
<LinearLayout android:orientation="horizontal"
android:layout_width="fill_parent" android:layout_height="50dp" android:background="#FFFFFF">
<Button android:id="@+id/btn_sort_pert"
android:layout_width="90dp" android:layout_height="31dp"
android:layout_gravity="center_vertical" android:gravity="center"
android:layout_weight="1" android:text="@string/pertinence"
android:textSize="14sp" android:textColor="#FFFFFF"
android:background="@drawable/btn_sort" />
<Button android:id="@+id/btn_sort_dist"
android:layout_width="90dp" android:layout_height="31dp"
android:layout_gravity="center_vertical" android:gravity="center"
android:layout_weight="1" android:text="@string/distance"
android:textSize="14sp" android:textColor="#FFFFFF"
android:background="@drawable/btn_sort" />
<Button android:id="@+id/btn_sort_prix"
android:layout_width="90dp" android:layout_height="31dp"
android:layout_gravity="center_vertical" android:gravity="center"
android:layout_weight="1" android:text="@string/prix"
android:textSize="14sp" android:textColor="#FFFFFF"
android:background="@drawable/btn_sort" />
<Button android:id="@+id/btn_refine"
android:layout_width="32dp" android:layout_height="31dp"
android:layout_gravity="center_vertical" android:layout_weight="1" android:background="@drawable/btn_affiner" />
</LinearLayout>
答案 0 :(得分:2)
修改强>
您需要添加以下空白视图:
<LinearLayout android:orientation="horizontal"
android:layout_width="fill_parent" android:layout_height="50dp" android:background="#FFFFFF">
<Button android:id="@+id/btn_sort_pert"
android:layout_width="90dp" android:layout_height="31dp"
android:layout_gravity="center_vertical" android:gravity="center"
android:text="@string/pertinence"
android:textSize="14sp" android:textColor="#FFFFFF"
android:background="@drawable/btn_sort" />
<View android:layout_width="0dp" android:layout_height="1dp"
android:layout_weight="1">
<Button android:id="@+id/btn_sort_dist"
android:layout_width="90dp" android:layout_height="31dp"
android:layout_gravity="center_vertical" android:gravity="center"
android:text="@string/distance"
android:textSize="14sp" android:textColor="#FFFFFF"
android:background="@drawable/btn_sort" />
<View android:layout_width="0dp" android:layout_height="1dp"
android:layout_weight="1">
<Button android:id="@+id/btn_sort_prix"
android:layout_width="90dp" android:layout_height="31dp"
android:layout_gravity="center_vertical" android:gravity="center"
android:text="@string/prix"
android:textSize="14sp" android:textColor="#FFFFFF"
android:background="@drawable/btn_sort" />
<View android:layout_width="0dp" android:layout_height="1dp"
android:layout_weight="1">
<Button android:id="@+id/btn_refine"
android:layout_width="32dp" android:layout_height="31dp"
android:layout_gravity="center_vertical" android:background="@drawable/btn_affiner" />
</LinearLayout>
答案 1 :(得分:2)
使用这些设置时,ImageView
的行为与Button
相似,但您可能看不到这可能是因为默认情况下,如果图像宽度不足以填充视图,则图像将居中。它就像一个框架,您将通过 HierarchyViewer (用于调试布局的SDK工具)看到它。
如果我得到你想要的东西,用按钮做同样的事情就必须将每个按钮都包含在一个布局中,这样封闭的布局将均匀地分享空间,按钮可以保持以重力为中心的那些布局,每个都有自己的宽度,在它们的两侧有一种灵活的“边缘”。 (未经测试但应该有效!)