2013-10-12 3 views
2

Я пытаюсь использовать атрибут alignTop в RelativeLayout, чтобы установить текст справа от изображения профиля, совпадающего с изображением вверху.Android RelativeLayout alignTop не работает

Это мой макет:

<?xml version="1.0" encoding="utf-8"?> 
<!-- Home fragment layout --> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res/com.coapps.pico" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:background="@color/background_dark_green" 
    android:orientation="vertical" > 

    <!-- title layout --> 

    <RelativeLayout 
     android:id="@+id/relativeLayout1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:background="@drawable/background_fragment_title" > 

     <!-- profile picture --> 

     <ImageView 
      android:id="@+id/fragment_home_profile_picture" 
      android:layout_width="100dp" 
      android:layout_height="100dp" 
      android:layout_centerVertical="true" 
      android:layout_marginLeft="10dp" 
      android:background="@drawable/background_profile_picture" 
      android:contentDescription="@string/app_name" 
      android:scaleType="fitXY" 
      android:src="@drawable/test_pic" /> 

     <!-- user name --> 

     <TextView 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_alignTop="@+id/fragment_home_profile_picture" 
      android:layout_marginLeft="10dp" 
      android:layout_toRightOf="@+id/fragment_home_profile_picture" 
      android:gravity="top" 
      android:text="Roi Mozer" 
      android:textColor="@android:color/white" 
      android:textSize="30sp"/> 

    </RelativeLayout> 

</RelativeLayout> 

Вот как это выглядит в окне предварительного просмотра (и то же самом в телефоне):

Как вы можете видеть название центр совмещен с верхним Изображенным - не знаю почему .. enter image description here

Как я могу установить их оба в одну строку?

UPDATE: Когда я изменил высоту макета на заданную высоту (и не завернуть содержание) он работает ...

+0

Зачем вам 2 относительных макета? – Raghunandan

+0

Мне понадобится в будущем .. это только начало моего дизайна макета ... –

+0

@AsafNevo: вы пробовали 'android: layout_alignParentTop =" true "' в обоих представлениях вместо 'android: layout_alignTop =" @ + id/fragment_home_profile_picture "' в TextView? –

ответ

2

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

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

android:orientation="vertical" > 

<!-- title layout --> 

<RelativeLayout 
    android:id="@+id/relativeLayout1" 
    android:layout_width="wrap_content" 
    android:layout_height="200dp" 
    android:background="@drawable/background_fragment_title" 
    > 

    <!-- profile picture --> 

    <ImageView 
     android:id="@+id/fragment_home_profile_picture" 
     android:layout_width="100dp" 
     android:layout_height="100dp" 
     android:layout_centerVertical="true" 
     android:layout_marginLeft="10dp" 
     android:src="@drawable/falcao_large" 
     android:contentDescription="@string/app_name" 
     android:scaleType="fitXY" 
     /> 

    <!-- user name --> 

    <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignTop="@+id/fragment_home_profile_picture" 
     android:layout_marginLeft="10dp" 
     android:layout_toRightOf="@+id/fragment_home_profile_picture" 
     android:gravity="top" 
     android:textColor="@android:color/white" 
     android:text="Roi Mozer" 

     android:textSize="30sp"/> 

</RelativeLayout> 

enter image description here

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

+0

butvyou проверил его выровненную вершину. Мне нужно, чтобы изображение было вертикально по центру, а текст выровнен по верхнему краю изображения –

+0

Если вы имеете в виду центрально-вертикальный экран. Переместите 'android: layout_centerVertical =" true "' из 'fragment_home_profile_picture' в' relativeLayout1' – ramaral

+0

вы меня не поняли .. вы можете прочитать мой вопрос еще раз - вы увидите, что я думаю. –

0

Здесь вы идете

Добавить отступы в TextView,

+2

, это самый простой способ, но неправильный подход (по крайней мере, для моего понимания) .. ваш способ не будет работать в каждом разрешении экрана. –

+0

, но он будет работать с большинством экранов. это лучшее решение, насколько мне известно :) cheers –

+0

Я бы использовал его, если не было атрибута alignTop, приветствия mate :) –

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