在编辑器中,按钮按应有的方式排列,但是在实际设备中,按钮被弄乱了。为什么会这样?
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent" android:layout_height="match_parent">
<ImageView
android:id="@+id/imageView4"
android:layout_width="match_parent"
android:layout_height="65dp"
android:layout_alignParentStart="true"
android:layout_alignParentTop="true"
android:adjustViewBounds="false"
android:cropToPadding="false"
app:srcCompat="@drawable/navbar" />
<Button
android:id="@+id/homeBtn"
android:layout_width="45dp"
android:layout_height="45dp"
android:layout_centerInParent="@+id/imageView4"
android:layout_alignTop="@+id/imageView4"
android:layout_marginTop="6dp"
android:layout_marginStart="30dp"
android:background="@drawable/home_icon" />
<Button
android:id="@+id/optionsBtn"
android:layout_width="45dp"
android:layout_height="45dp"
android:layout_centerInParent="@+id/imageView4"
android:layout_alignTop="@+id/imageView4"
android:layout_marginTop="6dp"
android:layout_marginStart="100dp"
android:background="@drawable/options_icon" />
<Button
android:id="@+id/micBtn"
android:layout_width="45dp"
android:layout_height="45dp"
android:layout_alignTop="@+id/homeBtn"
android:layout_centerHorizontal="true"
android:background="@drawable/mic_icon" />
<Button
android:id="@+id/connectionBtn"
android:layout_width="45dp"
android:layout_height="45dp"
android:layout_centerInParent="@+id/imageView4"
android:layout_alignTop="@+id/imageView4"
android:layout_marginTop="6dp"
android:layout_marginStart="240dp"
android:background="@drawable/con_icon" />
<Button
android:id="@+id/aboutBtn"
android:layout_width="45dp"
android:layout_height="45dp"
android:layout_centerInParent="@+id/imageView4"
android:layout_alignTop="@+id/imageView4"
android:layout_marginTop="6dp"
android:layout_marginStart="310dp"
android:background="@drawable/about_icon" />
</RelativeLayout>
请帮助我,我是android的新手,我还在尝试。无论我多少更改按钮的x位置,当它已经编译并在android上运行时,它都不会停留在它们的位置,但是在编辑器上,它看起来很好。
答案 0 :(得分:1)
首先,您将不同的边距应用于按钮。这就是为什么并非所有人到邻居(marginStart
的视线都相同的原因。
使用LinearLayout
连续对齐按钮并加权Button
的宽度,这样会减少很多麻烦
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:weightSum="5">
<Button
android:id="@+id/homeBtn"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:background="@drawable/home_icon" />
<Button
android:id="@+id/optionsBtn"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:background="@drawable/options_icon" />
<Button
android:id="@+id/micBtn"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:background="@drawable/mic_icon" />
<Button
android:id="@+id/connectionBtn"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1""
android:background="@drawable/con_icon" />
<Button
android:id="@+id/aboutBtn"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:background="@drawable/about_icon" />
</LinearLayout>
请注意,将每个Button
的宽度设置为0dp
,并将其他权重设置为1
,这将导致每个Button
具有相同的智慧。根据需要应用其他边距...