【发布时间】:2017-07-07 13:54:22
【问题描述】:
我正在尝试使用RelativeLayout 设计一个键盘。 每次我尝试使用 layout_alignTop 或 bottom 或 Right ... 我看到块没有完全对齐,好像 android 会考虑对齐对象的填充或边距。 在这里,我的“Go”键跨越了两行,我无法很好地对齐。与我的顶部“X”键相同。
Go 键未对齐的键盘
这是我的布局:
<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并将开始按钮设置为跨多行? -
是的,我尝试过网格布局和表格布局(使用水平 Go 键),发现让任何东西看起来都更难。
-
看起来它正在将边距与其他按钮的顶部对齐,您是否在 GO 按钮中尝试过
android:layout_below="@+id/kb_b1"?
标签: android android-relativelayout