gpt4 book ai didi

android - RelativeLayout 问题不适合所有屏幕尺寸

转载 作者:行者123 更新时间:2023-11-30 02:05:46 26 4
gpt4 key购买 nike

我正在用 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>

I ended up with this.. There's a space between the 2nd textview and 3rd textview which i don't want.. How can i solve this.. ?

enter image description here

最佳答案

您正在为前三个 TextView 使用 margintop,然后为其余元素切换到 margin bottom,因此这是相对于父顶部和底部固定元素。然后留下最中间的元素来填补中间的空白。

  1. 我会使用 layout_below 来提交 TextView 和按钮之间的位置差异,而不是将 top_margin/bottom 提交给父元素。

    http://developer.android.com/reference/android/widget/RelativeLayout.LayoutParams.html#attr_android:layout_below

  2. 我会为每个 TextView /按钮使用权重总和,总和为权重总和..

What is android:weightSum in android, and how does it work?

关于android - RelativeLayout 问题不适合所有屏幕尺寸,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30695557/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com