Як у роўнай ступені ахопліваць кнопкі/макеты вертыкальна ў Android?

У мяне ёсць макет, як калькулятар, 4 кнопкі ў кожнай радку, з некаторымі 5 радкоў. Я гэта стварыў кожную радок, выкарыстоўваючы LinearLayout . Мне ўдалося запоўніць шырыню кожнага радка цалкам з дапамогай кода <> Android: layout_weight = "1" у кожнай кнопкі ў LinearLayout . Але я не ведаю, як запоўніць прастору па вертыкалі такім чынам. Праз пяць радкоў ёсць што застаўся на дне для нармальных экранаў XDPI прастору (Nexus 4)



    <button
            android:id="@+id/seven"
            android:layout_width="0dip"
            android:layout_height="fill_parent"
            android:layout_weight="1"
            android:text="7"
            android:textColor="@color/Blue_ICS"
            android:textSize="@dimen/button_text_size"
            />

    <button
            android:id="@+id/eight"
            android:layout_width="0dip"
            android:layout_height="fill_parent"
            android:layout_weight="1"
            android:text="8"
            android:textColor="@color/Blue_ICS"

            android:textSize="@dimen/button_text_size"/>

    <button
            android:id="@+id/nine"
            android:layout_width="0dip"
            android:layout_height="fill_parent"
            android:layout_weight="1"
            android:text="9"

            android:textColor="@color/Blue_ICS"
            android:textSize="@dimen/button_text_size"/>

    <button
            android:id="@+id/plus"
            android:layout_width="0dip"
            android:layout_height="fill_parent"
            android:layout_weight="1"
            android:text="+"
            android:textColor="@color/Blue_ICS"
            android:textSize="@dimen/button_text_size"/>

Кампаноўка занадта доўга, таму я тут падзяліцца код толькі першага радка, астатнія радкі аднолькавыя таксама.

5
@ChintanRathod Ды я хачу, каб запоўніць кожную радок з такой жа вышыні.
дададзена аўтар Vins, крыніца
@ChintanRathod Ды я хачу, каб запоўніць кожную радок з такой жа вышыні.
дададзена аўтар Vins, крыніца
Вы спрабавалі змяніць LinearLayout атрыбут вышыня?: <�Код> Android: layout_height = "match_parent"
дададзена аўтар Yoann Hercouet, крыніца
Вы спрабавалі змяніць LinearLayout атрыбут вышыня?: <�Код> Android: layout_height = "match_parent"
дададзена аўтар Yoann Hercouet, крыніца
Вы хочаце, каб запоўніць радкі з роўнымі вышынямі?
дададзена аўтар Chintan Rathod, крыніца
азнаёмцеся з гэтай спасылкай
дададзена аўтар CRUSADER, крыніца
азнаёмцеся з гэтай спасылкай
дададзена аўтар CRUSADER, крыніца

8 адказы

Вы павінны выкарыстоўваць TableLayout , замяніўшы ўсе вашы LinearLayout для TableRow. Атрыбут stretchColumns дазваляе зрабіць усё слупкі з аднолькавай шырынёй без неабходнасці выкарыстоўваць вагу. Такім чынам, вы можаце выкарыстоўваць вага, каб справіцца з вышыні TableRow.

У прыведзеным ніжэй прыкладзе я нават дадаў некаторы прастору (пуста LinearLayout), каб паказаць вынікі, як экран калькулятара. Я спадзяюся, што гэта тое, што вы шукаеце! (Вы павінны змяніць ідэнтыфікатары)





<tableLayout
    android:id="@+id/myLayout"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:layout_below="@+id/screenLayout"
    android:stretchColumns="*" >

    <tableRow
        android:id="@+id/first_row"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_weight="1" >

        <button
            android:id="@+id/seven"
            android:layout_width="0dip"
            android:layout_height="fill_parent"
            android:text="7" />

        <button
            android:id="@+id/eight"
            android:layout_width="0dip"
            android:layout_height="fill_parent"
            android:text="8" />

        <button
            android:id="@+id/nine"
            android:layout_width="0dip"
            android:layout_height="fill_parent"
            android:text="9" />

        <button
            android:id="@+id/plus"
            android:layout_width="0dip"
            android:layout_height="fill_parent"
            android:text="+" />
    

    <tableRow
        android:id="@+id/first_row"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_weight="1" >

        <button
            android:id="@+id/seven"
            android:layout_width="0dip"
            android:layout_height="fill_parent"
            android:text="4" />

        <button
            android:id="@+id/eight"
            android:layout_width="0dip"
            android:layout_height="fill_parent"
            android:text="5" />

        <button
            android:id="@+id/nine"
            android:layout_width="0dip"
            android:layout_height="fill_parent"
            android:text="6" />

        <button
            android:id="@+id/plus"
            android:layout_width="0dip"
            android:layout_height="fill_parent"
            android:text="-" />
    

    <tableRow
        android:id="@+id/first_row"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_weight="1" >

        <button
            android:id="@+id/seven"
            android:layout_width="0dip"
            android:layout_height="fill_parent"
            android:text="1" />

        <button
            android:id="@+id/eight"
            android:layout_width="0dip"
            android:layout_height="fill_parent"
            android:text="2" />

        <button
            android:id="@+id/nine"
            android:layout_width="0dip"
            android:layout_height="fill_parent"
            android:text="3" />

        <button
            android:id="@+id/plus"
            android:layout_width="0dip"
            android:layout_height="fill_parent"
            android:text="*" />
    

    <tableRow
        android:id="@+id/first_row"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_weight="1" >

        <button
            android:id="@+id/seven"
            android:layout_width="0dip"
            android:layout_height="fill_parent"
            android:text="0" />

        <button
            android:id="@+id/eight"
            android:layout_width="0dip"
            android:layout_height="fill_parent"
            android:text="," />

        <button
            android:id="@+id/nine"
            android:layout_width="0dip"
            android:layout_height="fill_parent"
            android:text="/" />

        <button
            android:id="@+id/plus"
            android:layout_width="0dip"
            android:layout_height="fill_parent"
            android:text="=" />
    



Вынік:

enter image description here

7
дададзена
Так, гэта дапаможа ахапіць увесь макет аднолькава. дзякуй
дададзена аўтар Vins, крыніца
Рады дапамагчы! :)
дададзена аўтар PX Developer, крыніца

Вы павінны выкарыстоўваць TableLayout , замяніўшы ўсе вашы LinearLayout для TableRow. Атрыбут stretchColumns дазваляе зрабіць усё слупкі з аднолькавай шырынёй без неабходнасці выкарыстоўваць вагу. Такім чынам, вы можаце выкарыстоўваць вага, каб справіцца з вышыні TableRow.

У прыведзеным ніжэй прыкладзе я нават дадаў некаторы прастору (пуста LinearLayout), каб паказаць вынікі, як экран калькулятара. Я спадзяюся, што гэта тое, што вы шукаеце! (Вы павінны змяніць ідэнтыфікатары)





<tableLayout
    android:id="@+id/myLayout"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:layout_below="@+id/screenLayout"
    android:stretchColumns="*" >

    <tableRow
        android:id="@+id/first_row"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_weight="1" >

        <button
            android:id="@+id/seven"
            android:layout_width="0dip"
            android:layout_height="fill_parent"
            android:text="7" />

        <button
            android:id="@+id/eight"
            android:layout_width="0dip"
            android:layout_height="fill_parent"
            android:text="8" />

        <button
            android:id="@+id/nine"
            android:layout_width="0dip"
            android:layout_height="fill_parent"
            android:text="9" />

        <button
            android:id="@+id/plus"
            android:layout_width="0dip"
            android:layout_height="fill_parent"
            android:text="+" />
    

    <tableRow
        android:id="@+id/first_row"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_weight="1" >

        <button
            android:id="@+id/seven"
            android:layout_width="0dip"
            android:layout_height="fill_parent"
            android:text="4" />

        <button
            android:id="@+id/eight"
            android:layout_width="0dip"
            android:layout_height="fill_parent"
            android:text="5" />

        <button
            android:id="@+id/nine"
            android:layout_width="0dip"
            android:layout_height="fill_parent"
            android:text="6" />

        <button
            android:id="@+id/plus"
            android:layout_width="0dip"
            android:layout_height="fill_parent"
            android:text="-" />
    

    <tableRow
        android:id="@+id/first_row"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_weight="1" >

        <button
            android:id="@+id/seven"
            android:layout_width="0dip"
            android:layout_height="fill_parent"
            android:text="1" />

        <button
            android:id="@+id/eight"
            android:layout_width="0dip"
            android:layout_height="fill_parent"
            android:text="2" />

        <button
            android:id="@+id/nine"
            android:layout_width="0dip"
            android:layout_height="fill_parent"
            android:text="3" />

        <button
            android:id="@+id/plus"
            android:layout_width="0dip"
            android:layout_height="fill_parent"
            android:text="*" />
    

    <tableRow
        android:id="@+id/first_row"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_weight="1" >

        <button
            android:id="@+id/seven"
            android:layout_width="0dip"
            android:layout_height="fill_parent"
            android:text="0" />

        <button
            android:id="@+id/eight"
            android:layout_width="0dip"
            android:layout_height="fill_parent"
            android:text="," />

        <button
            android:id="@+id/nine"
            android:layout_width="0dip"
            android:layout_height="fill_parent"
            android:text="/" />

        <button
            android:id="@+id/plus"
            android:layout_width="0dip"
            android:layout_height="fill_parent"
            android:text="=" />
    



Вынік:

enter image description here

7
дададзена
Так, гэта дапаможа ахапіць увесь макет аднолькава. дзякуй
дададзена аўтар Vins, крыніца
Рады дапамагчы! :)
дададзена аўтар PX Developer, крыніца

Калі бацька з'яўляецца LinearLayout таксама, вы можаце карыстальніка па Android: layout_weight = "1" на вашых шэрагах таксама.

<!--parent-->


   

   

   

   

   



Ня праверыць гэта, але ён павінен працаваць.

Спадзяюся, што гэта дапамагае

2
дададзена

Калі бацька з'яўляецца LinearLayout таксама, вы можаце карыстальніка па Android: layout_weight = "1" на вашых шэрагах таксама.

<!--parent-->


   

   

   

   

   



Ня праверыць гэта, але ён павінен працаваць.

Спадзяюся, што гэта дапамагае

2
дададзена

Вы можаце паспрабаваць наступнае ... (псевдокод) :( Спадзяюся, у зразумець логіку ... Гэта працуе .. ён расцягвае кнопку на любы шчыльнасці экрана)

      
              
                   
              
               
                   
              
              
                   
              
             
                   
              
             
                   
              
0
дададзена
Мой корань раскладка RelativeLayout, таму я не магу выкарыстоўваць вагі суму я думаю
дададзена аўтар Vins, крыніца
Вы можаце паспрабаваць яго з layout_weight ці вы можаце заключыць гэтую лінейную кампаноўку ў вашых RelativeLayout @vins ...
дададзена аўтар amalBit, крыніца

Вы можаце паспрабаваць наступнае ... (псевдокод) :( Спадзяюся, у зразумець логіку ... Гэта працуе .. ён расцягвае кнопку на любы шчыльнасці экрана)

      
              
                   
              
               
                   
              
              
                   
              
             
                   
              
             
                   
              
0
дададзена
Мой корань раскладка RelativeLayout, таму я не магу выкарыстоўваць вагі суму я думаю
дададзена аўтар Vins, крыніца
Вы можаце паспрабаваць яго з layout_weight ці вы можаце заключыць гэтую лінейную кампаноўку ў вашых RelativeLayout @vins ...
дададзена аўтар amalBit, крыніца

паспрабуйце гэта:

    
         ...
    

    
         ...
    
    ...

і гэтак далей. Загарніце усе з тых, у лінейнае размяшчэнне з вертыкальная арыентацыя

0
дададзена

паспрабуйце гэта:

    
         ...
    

    
         ...
    
    ...

і гэтак далей. Загарніце усе з тых, у лінейнае размяшчэнне з вертыкальная арыентацыя

0
дададзена