设置多个文本视图Android

时间:2013-06-14 20:52:53

标签: java android eclipse textview

我有一对文本视图,我正在彼此旁边设置,我也需要垂直布局它们,不幸的是我有一个区域不能正确设置txtView2根据底部的代码。如果您查看“查看加油站”,则单击此处会在其上绘制。我在这里想念的是什么?这是我的屏幕截图。

enter image description here

这是我的布局代码。

<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>

5 个答案:

答案 0 :(得分:2)

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

TableLayout示例:

<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示例:

<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>

答案 1 :(得分:0)

移动用户习惯点击整个区域(如列表项)。我建议摆脱&#34;点击这里&#34;链接,只需使整个文本可点击。然后你可以将它们全部放在一个垂直的LinearLayout或ListView中。

答案 2 :(得分:0)

您的解决方案从一开始就不好,因为您尝试使用2个textView而不是一个。想想如果屏幕无法同时保存它们,或者用户已经设置为OS使用更大的字体会发生什么。

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

  1. 无论如何使用2个textviews和自定义布局(如flowLayout)。不建议使用textViews的整个部分而不是单词。

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

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

  4. 顺便说一下,你应该把你的字符串放在strings.xml中。它对本地化特别有用。

答案 3 :(得分:0)

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

但您确实需要更好地命名您的ID。它太混乱了。

答案 4 :(得分:0)

我不确定这是否有效,但试一试。我的评论可能令人困惑。

尝试删除android:layout_toRightOf="@id/textView2_1"的{​​{1}}并添加

textView2