2017-02-17 6 views
0

Я пытаюсь создать клавиатуру с RelativeLayout. Каждый раз, когда я пытаюсь использовать layout_alignTop или нижний или правый ... Я вижу, что блоки не идеально выровнены, как если бы андроид учитывал отступы или поля для выравниваемых объектов. Здесь моя клавиша «Go» охватывает две строки, и я не могу получить ее хорошо выровненную. То же самое с моей верхней клавишей «X».Android RelativeLayout делает layout_alignTop включает дополнение/margin?

клавиатура с Go Key не выровнены

Keyboard with Go Key not aligned

Вот мой макет:

<RelativeLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     > 

     <TextView 
      android:text="TextView" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:id="@+id/keybord_text_label" 
      android:layout_alignRight="@+id/kb_b3" 
      android:layout_alignLeft="@+id/kb_b1" 
      /> 

     <TextView 
      android:text="TextView" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:id="@+id/keyboard_text_value" 
      android:layout_below="@+id/keybord_text_label" 
      android:layout_alignRight="@+id/kb_b3" 
      android:layout_alignLeft="@+id/kb_b1" 
     /> 

     <Button 
      android:text="X" 
      style="@style/keyboard_btn" 
      android:id="@+id/kb_bdel" 
      android:layout_toRightOf="@+id/keyboard_text_value" 
      android:layout_alignBottom="@+id/keyboard_text_value" 
      /> 


     <Button 
      android:text="1" 
      style="@style/keyboard_btn" 
      android:id="@+id/kb_b1" 
      android:layout_below="@+id/keyboard_text_value"/> 
     <Button 
      android:text="2" 
      style="@style/keyboard_btn" 
      android:id="@+id/kb_b2" 
      android:layout_toRightOf="@+id/kb_b1" 
      android:layout_below="@+id/keyboard_text_value"/> 
     <Button 
      android:text="3" 
      style="@style/keyboard_btn" 
      android:id="@+id/kb_b3" 
      android:layout_toRightOf="@+id/kb_b2" 
      android:layout_below="@+id/keyboard_text_value"/> 

     <Button 
     android:text="4" 
     style="@style/keyboard_btn" 
     android:id="@+id/kb_b4" 
      android:layout_below="@+id/kb_b1"/> 
     <Button 
      android:text="5" 
      style="@style/keyboard_btn" 
      android:id="@+id/kb_b5" 
      android:layout_toRightOf="@+id/kb_b4" 
      android:layout_below="@+id/kb_b1"/> 
     <Button 
      android:text="6" 
      style="@style/keyboard_btn" 
      android:id="@+id/kb_b6" 
      android:layout_toRightOf="@+id/kb_b5" 
      android:layout_below="@+id/kb_b1"/> 


     <Button 
       android:text="7" 
       style="@style/keyboard_btn" 
       android:id="@+id/kb_b7" 
       android:layout_below="@+id/kb_b4"/> 
      <Button 
       android:text="8" 
       style="@style/keyboard_btn" 
       android:id="@+id/kb_b8" 
       android:layout_toRightOf="@+id/kb_b7" 
       android:layout_below="@+id/kb_b4"/> 
      <Button 
       android:text="9" 
       style="@style/keyboard_btn" 
       android:id="@+id/kb_b9" 
       android:layout_toRightOf="@+id/kb_b8" 
       android:layout_below="@+id/kb_b4"/> 

     <Button 
       android:text="0" 
       style="@style/keyboard_btn" 
       android:id="@+id/kb_b0" 
       android:layout_below="@+id/kb_b7" 
       /> 
      <Button 
       android:text="+" 
       style="@style/keyboard_btn" 
       android:id="@+id/kb_bplus" 
       android:layout_toRightOf="@+id/kb_b0" 
       android:layout_below="@+id/kb_b7" 
       /> 
      <Button 
       android:text="-" 
       style="@style/keyboard_btn" 
       android:id="@+id/kb_bminus" 
       android:layout_toRightOf="@+id/kb_bplus" 
       android:layout_below="@+id/kb_b7" 
       /> 

     <Button 
      android:text="X" 
      style="@style/keyboard_btn" 
      android:id="@+id/kb_bback" 

      android:layout_toRightOf="@+id/kb_b3" 
      android:layout_below="@+id/kb_bdel" /> 

     <Button 
      android:text="GO" 
      style="@style/keyboard_btn" 
      android:id="@+id/kb_bgo" 
      android:layout_alignTop="@+id/kb_b6" 
      android:layout_toRightOf="@+id/kb_b6" 
      android:layout_alignBottom="@+id/kb_bminus" /> 





    <Button 
     android:text=".00" 
     style="@style/keyboard_btn" 
     android:id="@+id/kb_b00" 
     android:layout_below="@+id/kb_b0" 
     /> 


    <Button 
     android:text=".25" 
     style="@style/keyboard_btn" 
     android:id="@+id/kb_b25" 
     android:layout_toRightOf="@+id/kb_b00" 
     android:layout_below="@+id/kb_bplus" 
     /> 
    <Button 
     android:text=".50" 
     style="@style/keyboard_btn" 
     android:id="@+id/kb_b50" 
     android:layout_toRightOf="@+id/kb_b25" 
     android:layout_below="@+id/kb_bminus" 
     /> 

    <Button 
     android:text=".75" 
     style="@style/keyboard_btn" 
     android:id="@+id/kb_b75" 
     android:layout_toRightOf="@+id/kb_b50" 
     android:layout_below="@+id/kb_bgo" 
     /> 
    </RelativeLayout> 

Вот мой стиль

<style name="keyboard_btn" parent="@android:style/Widget.Button"> 
    <item name="android:textSize">12sp</item> 
    <item name="android:textStyle">bold</item> 
    <item name="android:layout_gravity">center</item> 
    <item name="android:gravity">center</item> 
    <item name="android:layout_margin">2dp</item> 
    <item name="android:layout_height">40dp</item> 
    <item name="android:layout_width">40dp</item> 
    <item name="android:textColor">#FFFFFF</item> 
    <item name="android:background">@drawable/keyboard_btn</item> 
</style> 

Я также попытался TableLayout и GridLayout быть это еще хуже.

Помощь будет приветствуется.

Спасибо.

+0

вы пробовали 'GridLayout' и установив кнопку Перейти к span несколько строк? – ScegfOd

+0

Да Я пробовал как сетку макета, так и tablelayout (с горизонтальной клавишей Go), и оказалось еще труднее иметь что-нибудь приятное. – Nathalie

+0

похоже, что он выравнивает маржу к вершине других кнопок, вы пробовали 'android: layout_below =" @ + id/kb_b1 "' в кнопке GO? – ScegfOd

ответ

0

Большое спасибо, что решить мою проблему.

В случае это может помочь кто-то:

Вот результат

Keyboard all well aligned

Вот код

<RelativeLayout 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     > 

     <!-- TEXTBOX --> 
     <TextView 
      android:text="TextView" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:id="@+id/keybord_text_label" 
      android:layout_alignRight="@+id/kb_b3" 
      android:layout_alignLeft="@+id/kb_b1" 
      /> 

     <TextView 
      android:text="TextView" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:id="@+id/keyboard_text_value" 
      android:layout_below="@+id/keybord_text_label" 
      android:layout_alignRight="@+id/kb_b3" 
      android:layout_alignLeft="@+id/kb_b1" 
     /> 

     <Button 
      android:text="X" 
      style="@style/keyboard_btn" 
      android:id="@+id/kb_bdel" 
      android:layout_toRightOf="@+id/kb_b3" 
      android:layout_above="@+id/kb_sep" 
      /> 


     <!-- SEPARATOR --> 
     <View 
      android:id="@+id/kb_sep" 
      android:layout_width="match_parent" 
      android:layout_height="5dip" 
      android:layout_below="@+id/keyboard_text_value" 
      android:layout_alignEnd="@+id/kb_bdel" 
      android:layout_alignRight="@+id/kb_bdel" 
      android:layout_alignStart="@+id/kb_b1" 
      android:layout_alignLeft="@+id/kb_b1" 
      android:background="#ffffffff"/> 


     <!-- LINE 1 --> 
     <Button 
      android:text="1" 
      style="@style/keyboard_btn" 
      android:id="@+id/kb_b1" 
      android:layout_below="@+id/kb_sep"/> 
     <Button 
      android:text="2" 
      style="@style/keyboard_btn" 
      android:id="@+id/kb_b2" 
      android:layout_toRightOf="@+id/kb_b1" 
      android:layout_below="@+id/kb_sep"/> 
     <Button 
      android:text="3" 
      style="@style/keyboard_btn" 
      android:id="@+id/kb_b3" 
      android:layout_toRightOf="@+id/kb_b2" 
      android:layout_below="@+id/kb_sep"/> 

     <Button 
      android:text="<" 
      style="@style/keyboard_btn" 
      android:id="@+id/kb_bback" 
      android:layout_toRightOf="@+id/kb_b3" 
      android:layout_below="@+id/kb_sep" /> 

     <!-- LINE 2 --> 
     <Button 
      android:text="4" 
      style="@style/keyboard_btn" 
      android:id="@+id/kb_b4" 
      android:layout_below="@+id/kb_b1"/> 

     <Button 
      android:text="5" 
      style="@style/keyboard_btn" 
      android:id="@+id/kb_b5" 
      android:layout_toRightOf="@+id/kb_b4" 
      android:layout_below="@+id/kb_b1"/> 

     <Button 
      android:text="6" 
      style="@style/keyboard_btn" 
      android:id="@+id/kb_b6" 
      android:layout_toRightOf="@+id/kb_b5" 
      android:layout_below="@+id/kb_b1"/> 

     <Button 
      android:text="GO" 
      style="@style/keyboard_btn" 
      android:id="@+id/kb_bgo" 
      android:layout_below="@+id/kb_bback" 
      android:layout_above="@+id/kb_b75" 
      android:layout_toRightOf="@+id/kb_b6"/> 

     <!-- LINE 3 --> 
     <Button 
       android:text="7" 
       style="@style/keyboard_btn" 
       android:id="@+id/kb_b7" 
       android:layout_below="@+id/kb_b4"/> 
      <Button 
       android:text="8" 
       style="@style/keyboard_btn" 
       android:id="@+id/kb_b8" 
       android:layout_toRightOf="@+id/kb_b7" 
       android:layout_below="@+id/kb_b4"/> 
      <Button 
       android:text="9" 
       style="@style/keyboard_btn" 
       android:id="@+id/kb_b9" 
       android:layout_toRightOf="@+id/kb_b8" 
       android:layout_below="@+id/kb_b4"/> 

     <!-- LINE 4 --> 
     <Button 
       android:text="0" 
       style="@style/keyboard_btn" 
       android:id="@+id/kb_b0" 
       android:layout_below="@+id/kb_b7" 
       /> 
      <Button 
       android:text="+" 
       style="@style/keyboard_btn" 
       android:id="@+id/kb_bplus" 
       android:layout_toRightOf="@+id/kb_b0" 
       android:layout_below="@+id/kb_b7" 
       /> 
      <Button 
       android:text="-" 
       style="@style/keyboard_btn" 
       android:id="@+id/kb_bminus" 
       android:layout_toRightOf="@+id/kb_bplus" 
       android:layout_below="@+id/kb_b7" 
       /> 

     <!-- LINE 5 --> 
      <Button 
       android:text=".00" 
       style="@style/keyboard_btn" 
       android:id="@+id/kb_b00" 
       android:layout_below="@+id/kb_b0" 
       /> 


      <Button 
       android:text=".25" 
       style="@style/keyboard_btn" 
       android:id="@+id/kb_b25" 
       android:layout_toRightOf="@+id/kb_b00" 
       android:layout_below="@+id/kb_bplus" 
       /> 
      <Button 
       android:text=".50" 
       style="@style/keyboard_btn" 
       android:id="@+id/kb_b50" 
       android:layout_toRightOf="@+id/kb_b25" 
       android:layout_below="@+id/kb_bminus" 
       /> 

      <Button 
       android:text=".75" 
       style="@style/keyboard_btn" 
       android:id="@+id/kb_b75" 
       android:layout_toRightOf="@+id/kb_b50" 
       android:layout_below="@+id/kb_bminus" 
       /> 
    </RelativeLayout> 
0

Я не проверял, но я считаю, используя layout_below и layout_above могли бы работать лучше:

<Button 
     android:text="GO" 
     style="@style/keyboard_btn" 
     android:id="@+id/kb_bgo" 
     android:layout_below="@+id/kb_b1" 
     android:layout_toRightOf="@+id/kb_b6" 
     android:layout_above="@+id/kb_b00" /> 
+0

Спасибо. Работает лучше. – Nathalie

+0

рад слышать, не забудьте выбрать ответ, который «сработал для вас», – ScegfOd

 Смежные вопросы

  • Нет связанных вопросов^_^