我正在尝试使用RelativeLayout设计一个键盘。 每次我尝试使用layout_alignTop或者底部或右边...我看到块没有完全对齐,好像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,情况更糟。
欢迎提供帮助。
感谢。
答案 0 :(得分: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" />
答案 1 :(得分:0)
非常感谢它解决了我的问题。
如果它可以帮助某人:
结果如下
这是代码
<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>