2015-09-07 2 views
0

У меня есть пользовательский компонент, который имеет ImageView и текст. Моя проблема заключается в том, что если я устанавливаю текст centerHorizontal=true в макете, то текстовые центры в порядке, но если текст слишком длинный, он накладывается на изображение. Если я установил layout_toRightOf="@+id/imageviewid", текст не будет перекрываться, но текст будет выглядеть слишком близко к представлению изображения. Я хотел бы, чтобы мой текст был центрирован, но без перекрытия ImageView.Относительная компоновка и текст над изображениями

Я проверил this, то есть решение, которое я пробовал, но мне это не подходит.

Макет:

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="match_parent" 
android:layout_height="wrap_content"> 


<ImageView 
    android:layout_width="40dp" 
    android:layout_height="30dp" 
    android:id="@+id/imagecolor" 
    android:layout_alignParentLeft="true" 
    android:layout_alignParentStart="true" 
    android:layout_centerVertical="true" 
    android:layout_marginLeft="15dp"/> 

<TextView 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:textAppearance="?android:attr/textAppearanceMedium" 
    android:id="@+id/textcolor" 
    android:layout_centerVertical="true" 
    android:gravity="center_horizontal" 
    android:textColor="@color/white" 
    android:layout_centerHorizontal="true" 
    android:text="Placeholder" 
    android:layout_toRightOf="@+id/imagecolor"/> 

<Space 
    android:layout_width="20dp" 
    android:layout_height="60dp" 
    android:layout_alignParentTop="true" 
    android:layout_alignParentRight="true" 
    android:layout_alignParentEnd="true" /> 
</RelativeLayout> 
+0

, что вы хотите достичь –

+0

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

+0

мне нужен текст центрированный, но без перекрытия ImageView в левой части. В настоящее время, если текст слишком длинный, он перекрывается. Если я установил torightof, он не перекрывается, но если текст слишком короткий, он кажется слишком близким к ImageView ... – Fustigador

ответ

2

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

андроида: layout_marginLeft = «10dp» .... .....

+0

Да, но как я мог узнать расстояние, которое мне нужно для поля? Если текст короткий, мне не нужен запас. Если он длинный, мне это нужно ... но сколько? Я не думаю, что это жизнеспособно. – Fustigador

+0

Дайте разницу в 5 dp каждый раз, я не думаю, что это создало бы любую проблему, выглядя мудрую, даже если ваш текст и изображение будут всегда раздельными. Во всяком случае, не могли бы вы сделать снимок экрана, что в настоящее время вы показываете и что хотите, что было бы здорово обнаружить фактическое требование. –

+0

Im почти вне офиса сейчас ... сделаю позже. но я начинаю рассматривать использование TableLayout вместо RelativeLayout ... – Fustigador

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