相对布局 TextView 叠加

发布于 2024-11-09 03:35:35 字数 1756 浏览 0 评论 0原文

这是我当前的 ListView 项目布局:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:paddingTop="6dp"
android:paddingRight="6dp"
android:paddingBottom="6dp">

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="horizontal"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:paddingLeft="6dp">

    <TextView
        android:id="@+id/departure_line"
        android:layout_width="wrap_content"
        android:layout_height="fill_parent"
        android:singleLine="true"
        android:textSize="16sp"
        android:textStyle="bold"
        android:shadowColor="#000000"
        android:shadowDx="1"
        android:shadowDy="1"
        android:shadowRadius="1"
        android:paddingLeft="3dp"
        android:paddingRight="3dp" />
</RelativeLayout>

<TextView
    android:id="@+id/departure_destination"
    android:layout_width="wrap_content"
    android:layout_height="fill_parent"
    android:layout_marginLeft="52dp"
    android:background="#777777"
    android:singleLine="true"
    android:ellipsize="end"
    android:textSize="16sp" />
<TextView
    android:id="@+id/departure_time"
    android:layout_width="wrap_content"
    android:layout_height="fill_parent"
    android:layout_alignParentRight="true"
    android:textSize="16sp" />
 </RelativeLayout>

我的问题是目标 TextView 覆盖了时间 TextView,正如您在屏幕上看到的那样。如何预防呢?

http://www.abload.de/image.php?img=screensk6y.png

This is my current ListView item layout:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:paddingTop="6dp"
android:paddingRight="6dp"
android:paddingBottom="6dp">

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="horizontal"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:paddingLeft="6dp">

    <TextView
        android:id="@+id/departure_line"
        android:layout_width="wrap_content"
        android:layout_height="fill_parent"
        android:singleLine="true"
        android:textSize="16sp"
        android:textStyle="bold"
        android:shadowColor="#000000"
        android:shadowDx="1"
        android:shadowDy="1"
        android:shadowRadius="1"
        android:paddingLeft="3dp"
        android:paddingRight="3dp" />
</RelativeLayout>

<TextView
    android:id="@+id/departure_destination"
    android:layout_width="wrap_content"
    android:layout_height="fill_parent"
    android:layout_marginLeft="52dp"
    android:background="#777777"
    android:singleLine="true"
    android:ellipsize="end"
    android:textSize="16sp" />
<TextView
    android:id="@+id/departure_time"
    android:layout_width="wrap_content"
    android:layout_height="fill_parent"
    android:layout_alignParentRight="true"
    android:textSize="16sp" />
 </RelativeLayout>

My problem is that the destination TextView overlays the time TextView as you can see on the screen. How to prevent that?

http://www.abload.de/image.php?img=screensk6y.png

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

唐婉 2024-11-16 03:35:35

在您的目的地中使用 android:layout_toLeftOf="@+id/departure_time" 或者您可以在 TableLayout> 中设置它们

Use android:layout_toLeftOf="@+id/departure_time" in your destination or you could set them both up in a TableLayout>

无声静候 2024-11-16 03:35:35

使用属性:
android:layout_below="@id/label"

您可以在一个相对布局中执行此操作。并从您的RelativeLayout中删除orientation属性,它是没有用的。

您可以执行以下操作:

  • 使用 LinearLayout,在那里您有属性orientation。
  • 使用RelativeLayout并查看layout_below属性

Use the attribute:
android:layout_below="@id/label"

You can do this in one Relativelayout. And remove the orientation attribute from your RelativeLayout, it is useless.

You can do following:

  • Use LinearLayout, there you have the attribute orientation.
  • Use RelativeLayout and look into the layout_below attribute
淡水深流 2024-11-16 03:35:35
android:ellipsize="end"

如果文本太长,这会截断文本。或者你可以这样做

android:ellipsize="marquee"

,它会像 Android 市场中的应用程序名称一样滚动。有时你必须把它扔

android:singleLine="true"

在那里才能工作,我也建议

android:marqueeRepeatLimit="marquee_forever"

这样它继续移动,以防用户第一次错过它。

布局技巧中所示,TextView 椭圆大小

android:ellipsize="end"

this will cut the text off if it is too long. or you can do

android:ellipsize="marquee"

and it will scroll like app names in android market. sometimes you have to throw

android:singleLine="true"

in there for it to work, also i would reccomend

android:marqueeRepeatLimit="marquee_forever"

so that it continues moving in case the user missed it the first time.

as seen in Layout Tricks,TextView ellipsize

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文