layout_weight =“ 1”的按钮占用LinearLayout中的所有空间

问题描述

|| 我想将4个按钮水平放置在linearlayout中。为了使它们均匀分布,我在每个按钮中设置了“ 0”。问题在于按钮的宽度没有被考虑,它们填充了整个线性布局。这适用于图像视图,为什么不适用按钮? 谢谢
<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>
    

解决方法

编辑 您需要添加空白视图,例如:
<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>
    ,在这些设置下,ѭ3like的行为与
Button
相似,但是您可能没有看到,这可能是因为默认情况下,如果图像未填满宽度,图像将居中。它就像一个框架,您将通过HierarchyViewer(用于调试布局的SDK工具)看到它。 如果我得到了想要的,对按钮执行相同操作,则必须将每个按钮封装在布局中,以便包围的布局将均匀地共享空间,并且按钮可以在这些布局中保持重心,每个具有自己的宽度,在其侧面有一种灵活的“边距”。 (未经测试,但应该可以使用!)