2014-08-30 2 views
0

У меня есть 2 TextViews, который мне нужен обеими горизонтально бок о бок, как категория + nummber продуктов для категории. Код, как показано ниже:Первый TextView Overlaps второй, Android

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:paddingLeft="15dp" 
    android:paddingBottom ="10dp" 
    android:background="@color/navigation_background_sub"> 


    <TextView 

     android:id="@+id/category_name_second" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:textSize="22sp" 
     android:textColor="@color/ebuy_color_navigation_name" /> 

    <TextView 
     android:layout_toRightOf="@+id/category_name_second" 
     android:paddingLeft="7dp" 

     android:id="@+id/category_number_second" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:textSize="22sp" 
     android:textColor="@color/ebuy_color_navigation_number" /> 

</RelativeLayout> 

Теперь проблема заключается в том, что когда-то текст для первого TextView является длинным, слева на второе пространство для мало и текст дисплей в двух рудных более линиях.

У меня нет репутации размещать фотографии, так что я просто пытаюсь объяснить, как показано ниже:

Как это:

Ноутбуки (34)

Компьютерное программное обеспечение (1

   4      
       ) 

Как это должно быть:

Ноутбуки (34)

Компьютер (14)

Software

+0

Используется тот же идентификатор для обоих текстовых элементов. Сделайте их уникальными, и он должен работать – hoomi

+0

, он не использует один и тот же идентификатор.это не было бы возможно – eldjon

+0

Вы пробовали 'layout_toEndOf' вместо' layout_toRightOf'? – mbmc

ответ

0

использование

layout_toRightOf= "@id/category_name_second" 

Это может помочь вам

+0

Это то, что я использовал до сих пор – Xhulio

+0

Вы можете удалить прокладку –

+0

Я пробовал, ничего с этим тоже. – Xhulio

0

Если вы замените RelativeLayout с горизонтальным LineraLayout доступное пространство будет распределяться равномерно между ваши текстовые представления. Вы можете добавить атрибут weight для управления частью каждого из TextView в одной строке длины.

+0

Да, это может быть, но если вы используете 'LinearLayout' вместе с' весами ', если текст первого «TextView» слишком мал, я боюсь, что пространство между двумя «TextView» будет слишком большим или нет. – Xhulio

+0

нет, если вы используете wrap_content – eldjon

0

Ну, проблема в том, что у вас недостаточно пространства на горизонтальной линии, поэтому текстовое представление отображает больше строк.

Вы должны определить, сколько места вы хотите для каждого текстового поля. Если ваш макет настолько прост, что вы можете выбрать линейный макет, чтобы лучше совместить текст.

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/LinearLayout1" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:paddingBottom="10dp" 
    android:paddingLeft="15dp" 
    android:weightSum="1" > 

    <TextView 
     android:id="@+id/category_name_second" 
     android:layout_width="0dp" 
     android:layout_height="wrap_content" 
     android:layout_weight="0.7" 
     android:text="Computers" 
     android:textSize="22sp" 
     android:singleLine="true" 
     android:textColor="@color/ebuy_color_navigation_name" /> 

    <TextView 
     android:id="@+id/category_number_second" 
     android:layout_width="0dp" 
     android:layout_height="wrap_content" 
     android:layout_weight="0.3" 
     android:paddingLeft="7dp" 
     android:text="(24)" 
     android:textSize="22sp" 
     android:singleLine="true" 
     android:textColor="@color/ebuy_color_navigation_number" /> 

</LinearLayout> 

Вы должны также добавить свойство SingleLine избежать отображения в TextView в несколько строк. Как вы видите, используя вес, вы можете установить пропорциональную ширину для каждого компонента в горизонтальной линии.

0

В текстовом редакторе При использовании устройства android-устройства wrap_content пользователь будет настраивать его ширину и высоту (если вы используете wrap_content для высоты) в соответствии с данными, которые вы вводите (длина текста). Если текст не исправлен в текстовом представлении, тогда не используйте wrap_content (только если вы не хотите, чтобы этот текст автоматически записывался во второй строке). Поэтому, если сначала Textview занял более половины пространства, второе текстовое изображение должно отрегулировать его высоту, чтобы показать полную text.There нет постоянного решения, потому что эта текстовая строка зависит от размера устройства. если экран устройства больше, чтобы отображать как текстовое изображение в одной строке, он покажет вам, если он не увеличит высоту второго текста в вашем случае.

Вы также можете сделать разный макет для всех типов экрана и задать размер текста в соответствии с ним. вы можете использовать check для поддержки нескольких размеров экрана.

Смежные вопросы