2013-06-14 4 views
0

У меня есть пары текстовых представлений, которые я устанавливаю рядом друг с другом, а также мне нужно развернуть их по вертикали, а также, к сожалению, у меня есть одна область, которая не будет установлена ​​правильно, что является txtView2 в соответствии с кодом на дно. Если вы посмотрите на «Просмотр топливных станций», щелкните над ним. Что я здесь пропустил? Вот мой экранный снимок.Установка нескольких текстовых представлений Android

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

Если вы дадите им осмысленные 'id's или, по крайней мере, указать на то, что есть что, это будет легче помочь тебе. Значимые 'id' могут также вам пригодиться, когда вы пишете код – codeMagic

+0

txtView2 и txtView2_1 - это идентификаторы, вызывающие проблемы, отображаются txtView2_1. Для просмотра топливных станций и отображения txtView2 Нажмите здесь – yams

+0

txtView2_1 (от того, что у вас здесь) не является TextView, который отображает «Для просмотра топливных станций» – codebaum

ответ

2

Я хотел бы изменить свой RelativeLayout либо в TableLayout или вертикальной LinearLayout с 3-мя горизонтальными LinearLayouts. 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> 
+0

Можете ли вы привести мне пример? – yams

+0

не знаю, что/где вы хотите получить дополнительные текстовые изображения, но за ваше изображение, я добавил примеры – invertigo

+0

Извините за медленное головокружение, но это сделало это. – yams

0

Мобильные пользователи используются для кликов по целым областям (например, элементы списка). Я бы рекомендовал избавиться от ссылок «нажмите здесь» и просто сделать весь текст кликабельным. Затем вы можете просто поместить их все в вертикальный LinearLayout или в ListView.

+0

Это совсем не ответ, это мнение. – yams

+0

это зависит от контекста. возможно, текст отображается на странице справки/о странице, и пользователь может щелкнуть по ссылкам там. –

0

Ваше решение не хорошо с самого начала, потому что вы пытаетесь использовать 2 textView вместо одного. подумайте, что произойдет, если экран не сможет удерживать их обоих, или если пользователь установил использовать более крупные шрифты для ОС.

Вот некоторые возможные решения:

  1. использование 2 TextViews в любом случае, и выполненный на заказ макет (как flowLayout). не рекомендуется, так как в нем будут использоваться все части textViews вместо слов.

  2. использовать один textView и Html.fromHtml и ручку, щелкнув по ссылкам.

  3. использовать webView для отображения содержимого HTML и обработки щелчка по ссылкам. не рекомендуется, так как webView имеет странные проблемы с прокруткой, особенно если он находится внутри контейнера, который прокручивается.

BTW, вы должны поместить свои строки в strings.xml. это особенно хорошо для локализации.

0

txtView2 настроен для отображения справа от txtView2_1, когда он должен быть настроен для отображения справа от txtView3_1 (для просмотра заполняющих станций).

Однако вам нужно назвать свои идентификаторы лучше. Это слишком запутанно, как есть.

+0

он мог использовать графический конструктор и перетаскивать вещи там. его обычно проще использовать, когда вы используете relativeLayout. после этого он может переименовать идентификаторы, используя ALT + SHIFT + R. –

0

Я не уверен, что это сработает, но попробуй. Мой комментарий, возможно, был путаным для чтения.

Попробуйте удалить android:layout_toRightOf="@id/textView2_1" из textView2 и добавить к нему

android:layout_alignRight="@+id/textView1" <!-- or whatever is the id of the one above this one 
Смежные вопросы