0

我有一对文本视图,我将它们设置在彼此旁边,而且我还需要垂直布局它们,不幸的是,我有一个无法正确设置的区域,即 txtView2 根据底部的代码。如果您查看查看加油站,请点击此处。我在这里错过了什么?这是我的屏幕截图。

在此处输入图像描述

这是我的布局代码。

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity" >

<TextView  android:id="@+id/txtViewGPS"
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:text="" 
    android:textSize="20sp"
    android:textColorLink="#FFFF00"
    android:textStyle="bold"/>
<TextView  android:id="@+id/txtView_5"
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:text="" 
    android:layout_below="@+id/txtViewGPS"
    android:textSize="20sp"
    android:textColorLink="#FFFF00"
    android:textStyle="bold"/>
<TextView android:id="@+id/textView1_1" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content"
    android:singleLine="true" 
    android:text="To view Evacuation Routes - "
    android:textSize="20sp"
    android:textStyle="bold" 
    android:layout_marginRight="5dp"/>

<TextView  android:id="@+id/txtView1"
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="" 
    android:layout_toRightOf="@id/textView1_1"
    android:textSize="20sp"
    android:textStyle="bold"
    android:layout_alignParentRight="true"/>
<TextView  android:id="@+id/txtView1_5"
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:text="" 
    android:layout_below="@+id/txtView1"
    android:textSize="20sp"
    android:textColorLink="#FFFF00"
    android:textStyle="bold"/>  
 <TextView android:id="@+id/textView2_1" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content"
    android:singleLine="true" 
    android:layout_below="@+id/txtView1_5"
    android:text="To view shelters - "
    android:textSize="20sp"
    android:textStyle="bold" 
    android:layout_marginRight="5dp"/>
<TextView  android:id="@+id/txtView2"
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_below="@+id/txtView1"
    android:text="" 
    android:layout_toRightOf="@id/textView2_1"
    android:textSize="20sp"
    android:textStyle="bold"
    android:layout_alignParentRight="true"/>
<TextView  android:id="@+id/txtView2_5"
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:text="" 
    android:layout_below="@+id/txtView2_1"
    android:textSize="20sp"
    android:textColorLink="#FFFF00"
    android:textStyle="bold"/>  
 <TextView android:id="@+id/textView3_1" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content"
    android:singleLine="true" 
    android:layout_below="@+id/txtView2_5"
    android:text="To view Fuel Stations  - "
    android:textSize="20sp"
    android:textStyle="bold" 
    android:layout_marginRight="5dp"/>
<TextView  android:id="@+id/txtView3"
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_below="@+id/txtView2"
    android:layout_toRightOf="@id/textView3_1"
    android:text="" 
    android:textSize="20sp"
    android:textStyle="bold"
    android:layout_alignParentRight="true"/>

</RelativeLayout>
4

5 回答 5

2

我会将您的RelativeLayout 更改为TableLayout 或具有3 个水平LinearLayouts 的垂直LinearLayout。对于像这样的简单实现,RelativeLayouts 比必要的更麻烦。

表格布局示例:

<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".MainActivity" >

    <TableRow>

        <TextView
            android:id="@+id/textView1_1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginRight="5dp"
            android:singleLine="true"
            android:text="To view Evacuation Routes - "
            android:textSize="20sp"
            android:textStyle="bold" />

        <TextView
            android:id="@+id/txtView1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text=""
            android:textSize="20sp"
            android:textStyle="bold" />
    </TableRow>

    <TableRow>

        <TextView
            android:id="@+id/textView3_1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginRight="5dp"
            android:singleLine="true"
            android:text="To view Fuel Stations  - "
            android:textSize="20sp"
            android:textStyle="bold" />

        <TextView
            android:id="@+id/txtView3"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text=""
            android:textSize="20sp"
            android:textStyle="bold" />
    </TableRow>

    <TableRow>

        <TextView
            android:id="@+id/textView2_1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginRight="5dp"
            android:singleLine="true"
            android:text="To view shelters - "
            android:textSize="20sp"
            android:textStyle="bold" />

        <TextView
            android:id="@+id/txtView2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text=""
            android:textSize="20sp"
            android:textStyle="bold" />
    </TableRow>

</TableLayout>

线性布局示例:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".MainActivity" >

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal" >

        <TextView
            android:id="@+id/textView1_1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginRight="5dp"
            android:singleLine="true"
            android:text="To view Evacuation Routes - "
            android:textSize="20sp"
            android:textStyle="bold" />

        <TextView
            android:id="@+id/txtView1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text=""
            android:textSize="20sp"
            android:textStyle="bold" />
    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal" >

        <TextView
            android:id="@+id/textView3_1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginRight="5dp"
            android:singleLine="true"
            android:text="To view Fuel Stations  - "
            android:textSize="20sp"
            android:textStyle="bold" />

        <TextView
            android:id="@+id/txtView3"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text=""
            android:textSize="20sp"
            android:textStyle="bold" />
    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal" >

        <TextView
            android:id="@+id/textView2_1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginRight="5dp"
            android:singleLine="true"
            android:text="To view shelters - "
            android:textSize="20sp"
            android:textStyle="bold" />

        <TextView
            android:id="@+id/txtView2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text=""
            android:textSize="20sp"
            android:textStyle="bold" />
    </LinearLayout>

</LinearLayout>
于 2013-06-14T21:18:45.293 回答
1

移动用户习惯于点击整个区域(如列表项)。我建议去掉“点击这里”链接,让整个文本可点击。然后你可以把它们全部放在一个垂直的 LinearLayout 或 ListView 中。

于 2013-06-14T20:57:32.277 回答
0

您的解决方案从一开始就不好,因为您尝试使用 2 个 textView 而不是一个。想想如果屏幕不能同时容纳它们,或者如果用户设置为操作系统使用更大的字体会发生什么。

以下是一些可能的解决方案:

  1. 无论如何都要使用 2 个文本视图,以及一个定制的布局(如flowLayout)。不推荐,因为它将占用 textViews 的全部部分而不是单词。

  2. 使用单个 textView 和Html.fromHtml并处理点击链接。

  3. 使用 webView 显示 HTML 内容并处理点击链接。不推荐,因为 webView 在滚动方面有奇怪的问题,特别是如果它位于可滚动的容器内。

顺便说一句,您应该将字符串放在 strings.xml 中。它特别适合本地化。

于 2013-06-14T21:04:00.987 回答
0

txtView2 设置为显示在 txtView2_1 的右侧,此时应设置为显示在 txtView3_1 的右侧(查看填充站)。

不过,您确实需要更好地命名您的 ID。这太令人困惑了。

于 2013-06-14T21:06:48.297 回答
0

我不确定这是否可行,但试一试。我的评论可能读起来令人困惑。

尝试删除android:layout_toRightOf="@id/textView2_1"textView2添加到它

android:layout_alignRight="@+id/textView1"  <!-- or whatever is the id of the one above this one
于 2013-06-14T21:09:22.553 回答