我正在用 android 开发我的第一个应用程序,但我被 xml 布局困住了。我的布局中有 4 个 TextView , TextView 下方有 2 个图像按钮。 Textview 需要一个放在另一个下面,大小不同,即第 1 个和第 2 个 textview 是 1 行,第 3 个 textview 可以达到 3-4 行,第 4 个 textview 可以达到 2 行。 2 个按钮需要放在第 4 个 TextView 下方但彼此相邻。下面是我的布局文件:-
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#FFFFFF"
android:weightSum="1">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceLarge"
android:id="@+id/name"
android:text="LocAlert"
android:textStyle="italic"
android:layout_gravity="center_horizontal"
android:layout_weight="0.07"
android:textColor="@android:color/holo_blue_dark"
android:layout_marginTop="37dp"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceMedium"
android:id="@+id/task_name"
android:textStyle="bold"
android:text="name"
android:textColor="@android:color/tab_indicator_text"
android:layout_gravity="center_horizontal"
android:layout_below="@+id/name"
android:layout_centerHorizontal="true"
android:layout_marginTop="39dp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceSmall"
android:textColor="@android:color/tab_indicator_text"
android:text="location"
android:layout_gravity="center_horizontal"
android:id="@+id/task_location"
android:gravity="center"
android:layout_marginTop="42dp"
android:layout_below="@+id/task_name"
android:layout_centerHorizontal="true" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceSmall"
android:text="distance"
android:textColor="@android:color/tab_indicator_text"
android:layout_gravity="center_horizontal"
android:id="@+id/task_distance"
android:layout_marginBottom="56dp"
android:layout_above="@+id/imageButton"
android:layout_centerHorizontal="true"/>
<ImageButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/imageButton"
android:src="@drawable/speakblue"
android:background="#FFFFFF"
android:text="Speak Out"
android:layout_marginBottom="55dp"
android:layout_alignParentBottom="true"
android:layout_toStartOf="@+id/task_name" />
<ImageButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/imageButton2"
android:background="#FFFFFF"
android:src="@drawable/okblue"
android:layout_below="@+id/task_distance"
android:layout_alignParentEnd="true" />
我面临的问题是在第 3 个和第 4 个 TextView 以及图像按钮中。随着我的第 3 个 textview 大小根据行增加和减少,我的第 4 个 textview 和按钮也搞砸了..不适合以相同格式正确放置..当我在具有大屏幕尺寸的设备上运行我的应用程序时 TextView 之间有很多差距..我怎样才能让我的布局适合所有屏幕尺寸和适当的空间..请帮助..
已编辑
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#FFFFFF"
>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceLarge"
android:id="@+id/name"
android:text="LocAlert"
android:textStyle="italic"
android:layout_gravity="center_horizontal"
android:layout_weight="1"
android:textColor="@android:color/holo_blue_dark"
android:layout_marginTop="37dp"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceLarge"
android:id="@+id/task_name"
android:textStyle="bold"
android:text="name"
android:textColor="@android:color/tab_indicator_text"
android:layout_gravity="center_horizontal"
android:layout_below="@+id/name"
android:layout_centerHorizontal="true"
android:layout_weight="1" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceSmall"
android:textColor="@android:color/tab_indicator_text"
android:text="location"
android:layout_gravity="center_horizontal"
android:id="@+id/task_location"
android:gravity="center"
android:layout_weight="1"
android:layout_below="@+id/task_name"
android:layout_centerHorizontal="true" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceSmall"
android:text="distance"
android:textColor="@android:color/tab_indicator_text"
android:layout_gravity="center_horizontal"
android:id="@+id/task_distance"
android:layout_below="@+id/task_location"
android:layout_weight="1"
android:layout_centerHorizontal="true"/>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/task_distance">
<ImageButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/imageButton"
android:src="@drawable/speakblue"
android:background="#FFFFFF"
android:text="Speak Out"
android:layout_weight="1" />
<ImageButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/imageButton2"
android:background="#FFFFFF"
android:src="@drawable/okblue"
android:layout_weight="1"
android:layout_gravity="right"
android:layout_alignParentTop="true"
android:layout_alignParentEnd="true" />
</RelativeLayout>
最佳答案
您正在为前三个 TextView 使用 margintop,然后为其余元素切换到 margin bottom,因此这是相对于父顶部和底部固定元素。然后留下最中间的元素来填补中间的空白。
我会使用
layout_below
来提交 TextView 和按钮之间的位置差异,而不是将top_margin/bottom
提交给父元素。我会为每个 TextView /按钮使用权重总和,总和为权重总和..
关于android - RelativeLayout 问题不适合所有屏幕尺寸,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30695557/