Android 为垂直方向的内部线性布局使用布局权重
我希望最多有5个复选框,每个复选框占用相等的可用空间。复选框的数量取决于一个问题有多少个答案。所以我动态生成复选框,但最大值是5 我的主Android 为垂直方向的内部线性布局使用布局权重,android,android-layout,checkbox,android-linearlayout,android-checkbox,Android,Android Layout,Checkbox,Android Linearlayout,Android Checkbox,我希望最多有5个复选框,每个复选框占用相等的可用空间。复选框的数量取决于一个问题有多少个答案。所以我动态生成复选框,但最大值是5 我的主线性布局具有水平方向,而2个内部线性布局具有垂直方向。我尝试对两个内部布局使用android:weightSum=5,对每个复选框使用android:layout\u weight=“1”。但它不起作用 <LinearLayout android:id="@+id/layout_multiplechoice" android:layou
线性布局
具有水平方向
,而2个内部线性布局
具有垂直方向
。我尝试对两个内部布局使用android:weightSum=5
,对每个复选框使用android:layout\u weight=“1”
。但它不起作用
<LinearLayout
android:id="@+id/layout_multiplechoice"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/layout_question"
android:layout_margin="5dp"
android:layout_toEndOf="@+id/iv_image"
android:layout_toRightOf="@+id/iv_image"
android:orientation="horizontal">
<LinearLayout
android:id="@+id/layout_multiplechoice_solutions"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="center_vertical"
android:orientation="vertical"
android:visibility="invisible"
android:weightSum="5">
<CheckBox
android:id="@+id/cb_solution1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:enabled="false"/>
<CheckBox
android:id="@+id/cb_solution2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:enabled="false"/>
<CheckBox
android:id="@+id/cb_solution3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:enabled="false"/>
<CheckBox
android:id="@+id/cb_solution4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:enabled="false"/>
<CheckBox
android:id="@+id/cb_solution5"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:enabled="false"/>
</LinearLayout>
<LinearLayout
android:id="@+id/layout_multiplechoice_answers"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:orientation="vertical"
android:weightSum="5">
<CheckBox
android:id="@+id/cb_answer1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:buttonTint="@android:color/holo_green_light"/>
<CheckBox
android:id="@+id/cb_answer2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:buttonTint="@android:color/holo_green_light"/>
<CheckBox
android:id="@+id/cb_answer3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:buttonTint="@android:color/holo_green_light"/>
<CheckBox
android:id="@+id/cb_answer4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:buttonTint="@android:color/holo_green_light"/>
<CheckBox
android:id="@+id/cb_answer5"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:buttonTint="@android:color/holo_green_light"/>
</LinearLayout>
</LinearLayout>
从线性布局中删除android:weightSum=“5”
将android:layout\u weight=“1”
添加到所有复选框中
将android:layout\u height=“0dp”
设置为所有复选框
然后以编程方式为要隐藏的对象设置可见性。复选框父布局中的所有剩余空间将被均匀填充。尝试使用下面的XML布局,我做了一些更改。这可能对你有帮助
<LinearLayout
android:id="@+id/layout_multiplechoice"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/layout_question"
android:layout_margin="5dp"
android:layout_toEndOf="@+id/iv_image"
android:layout_toRightOf="@+id/iv_image"
android:orientation="horizontal"
android:weightSum="2">
<LinearLayout
android:id="@+id/layout_multiplechoice_solutions"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_gravity="center_vertical"
android:layout_weight="1"
android:orientation="vertical"
android:visibility="invisible"
android:weightSum="5">
<CheckBox
android:id="@+id/cb_solution1"
android:layout_width="wrap_content"
android:layout_height="0dp"
android:layout_weight="1"
android:enabled="false" />
<CheckBox
android:id="@+id/cb_solution2"
android:layout_width="wrap_content"
android:layout_height="0dp"
android:layout_weight="1"
android:enabled="false" />
<CheckBox
android:id="@+id/cb_solution3"
android:layout_width="wrap_content"
android:layout_height="0dp"
android:layout_weight="1"
android:enabled="false" />
<CheckBox
android:id="@+id/cb_solution4"
android:layout_width="wrap_content"
android:layout_height="0dp"
android:layout_weight="1"
android:enabled="false" />
<CheckBox
android:id="@+id/cb_solution5"
android:layout_width="wrap_content"
android:layout_height="0dp"
android:layout_weight="1"
android:enabled="false" />
</LinearLayout>
<LinearLayout
android:id="@+id/layout_multiplechoice_answers"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_weight="1"
android:orientation="vertical"
android:weightSum="5">
<CheckBox
android:id="@+id/cb_answer1"
android:layout_width="wrap_content"
android:layout_height="0dp"
android:layout_weight="1"
android:buttonTint="@android:color/holo_green_light" />
<CheckBox
android:id="@+id/cb_answer2"
android:layout_width="wrap_content"
android:layout_height="0dp"
android:layout_weight="1"
android:buttonTint="@android:color/holo_green_light" />
<CheckBox
android:id="@+id/cb_answer3"
android:layout_width="wrap_content"
android:layout_height="0dp"
android:layout_weight="1"
android:buttonTint="@android:color/holo_green_light" />
<CheckBox
android:id="@+id/cb_answer4"
android:layout_width="wrap_content"
android:layout_height="0dp"
android:layout_weight="1"
android:buttonTint="@android:color/holo_green_light" />
<CheckBox
android:id="@+id/cb_answer5"
android:layout_width="wrap_content"
android:layout_height="0dp"
android:layout_weight="1"
android:buttonTint="@android:color/holo_green_light" />
</LinearLayout>
</LinearLayout>
谢谢,但这些更改没有区别。您还需要将线性布局的布局高度设置为大于所有复选框高度总和的值<代码>换行内容
(第二组复选框现在似乎已将其设置为)将使高度精确到足以容纳所有复选框,而没有任何间距,这不是您想要的。您是指我的第二个内线布局的布局高度吗?