0

私は最大5つのCheckBoxがお互いの間に利用可能なスペースを同数使用したいと考えています。チェックボックスの数は、質問の回答数によって異なります。だから私は、動的にチェックボックスを生成していますが、最大で5垂直方向に配置された内側の線形レイアウトにlayout_weightを使用

enter image description here

私の主なLinearLayoutvertical orientationを持っhorizontal orientationと2インナーLinearLayoutを持っています。私は内部レイアウトの両方にandroid:weightSum=5CheckBoxについてはandroid:layout_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> 

答えて

0
  1. その後、あなたは視認性がもののために、プログラムGONE設定されているすべてのあなたのCheckBoxe

に設定android:layout_height="0dp"

  • すべてのCheckBoxe秒にandroid:layout_weight="1"を追加するには、LinearLayout
  • からandroid:weightSum="5"を削除します隠したいCheckBoxesの親レイアウトの残りのスペースはすべて均等に塗りつぶされます。

  • +0

    ありがとうございますが、これらの変更との違いはありません。 –

    +0

    また、LinearLayoutの 'layout_height'には、すべてのCheckBoxの高さの合計より大きな値を設定する必要があります。 'wrap_content'(これは2番目のCheckBoxのセットに対して今のところ設定されているように見えます)は、何の隙間もなく、すべてのCheckBoxに収まるくらいの高さになります。 – DanielLaneDC

    +0

    2番目の内側のLinearLayoutのlayout_heightを意味しますか? –

    0

    以下の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> 
    
    +0

    ありがとうございますが動作しません。 –

    関連する問題