Android RelativeLayout layout_alignTop 包含填充/边距吗?
Android RelativeLayout does layout_alignTop include padding / margin?
我正在尝试使用 RelativeLayout 设计键盘。
每次我尝试使用 layout_alignTop 或 bottom 或 Right... 我发现块没有完全对齐,就好像 android 会考虑对齐对象的填充或边距。
在这里,我的 "Go" 键跨越两行,我无法很好地对齐它。与我的顶部 "X" 键相同。
带有 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 更糟。
欢迎提供帮助。
谢谢。
我还没有测试过,但我相信使用 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" />
非常感谢,解决了我的问题。
万一它可以帮助某人:
这是结果
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>
我正在尝试使用 RelativeLayout 设计键盘。 每次我尝试使用 layout_alignTop 或 bottom 或 Right... 我发现块没有完全对齐,就好像 android 会考虑对齐对象的填充或边距。 在这里,我的 "Go" 键跨越两行,我无法很好地对齐它。与我的顶部 "X" 键相同。
带有 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 更糟。
欢迎提供帮助。
谢谢。
我还没有测试过,但我相信使用 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" />
非常感谢,解决了我的问题。
万一它可以帮助某人:
这是结果
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>