Я пытаюсь создать клавиатуру с RelativeLayout. Каждый раз, когда я пытаюсь использовать layout_alignTop или нижний или правый ... Я вижу, что блоки не идеально выровнены, как если бы андроид учитывал отступы или поля для выравниваемых объектов. Здесь моя клавиша «Go» охватывает две строки, и я не могу получить ее хорошо выровненную. То же самое с моей верхней клавишей «X».Android RelativeLayout делает layout_alignTop включает дополнение/margin?
клавиатура с Go Key не выровнены
Вот мой макет:
<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 быть это еще хуже.
Помощь будет приветствуется.
Спасибо.
вы пробовали 'GridLayout' и установив кнопку Перейти к span несколько строк? – ScegfOd
Да Я пробовал как сетку макета, так и tablelayout (с горизонтальной клавишей Go), и оказалось еще труднее иметь что-нибудь приятное. – Nathalie
похоже, что он выравнивает маржу к вершине других кнопок, вы пробовали 'android: layout_below =" @ + id/kb_b1 "' в кнопке GO? – ScegfOd