Проблема с представлением Android - ImageView и два TextView - PullRequest
1 голос
/ 12 июля 2011

Я пытаюсь расположить два TextView справа от изображения (обратите внимание, это не в списке).Я следовал этому примеру, который работает, но возникают проблемы, когда я начинаю увеличивать размер текста и фона TextView.Здесь верхний текстовый вид, кажется, расширяется, несмотря на установку высоты в wrap_content.

Глядя на пример, я действительно не понимаю

android: layout_height = "? Android: attr /listPreferredItemHeight "

и почему высота макета установлена ​​на 26dip

android: layout_height =" 26dip "

Вот мой xml снезначительные изменения в layout_height, которые, как я думал, будут работать

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent" android:layout_height="wrap_content"

    android:padding="6dip">

    <ImageView android:id="@+id/icon" android:layout_width="wrap_content"
        android:layout_height="fill_parent" android:layout_alignParentTop="true"
        android:layout_alignParentBottom="true" android:layout_marginRight="6dip"

        android:src="@drawable/icon" />

    <TextView android:id="@+id/secondLine" android:layout_width="fill_parent"
        android:layout_height="wrap_content" android:layout_toRightOf="@id/icon"
        android:layout_alignParentBottom="true"
        android:layout_alignParentRight="true" android:background="@layout/rounded"
        android:textSize="20sp" android:singleLine="true" android:textColor="#FFFFFF"
        android:textStyle="bold" android:ellipsize="marquee" android:padding="10dip"
        android:layout_margin="5dip"
        android:text="Simple application that shows how to use RelativeLayout" />

    <TextView android:layout_width="fill_parent"
        android:layout_height="wrap_content" android:background="@layout/rounded"
        android:layout_toRightOf="@id/icon" android:textSize="20sp"
        android:singleLine="true" android:textColor="#FFFFFF"
        android:textStyle="bold" android:layout_alignParentRight="true"
        android:layout_alignParentTop="true" android:layout_above="@id/secondLine"
        android:padding="10dip" android:layout_margin="5dip" android:gravity="center_vertical"
        android:text="My Application" />

</RelativeLayout>

И это полученное изображение ???

enter image description here

Любая помощь будет принята с благодарностью.

Я только что наткнулся на этот пост , который, кажется, работает

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/RelativeLayout" android:layout_width="fill_parent"
    android:layout_height="wrap_content" android:padding="6dip">
    <ImageView android:id="@+id/Icon" android:layout_margin="5dip"
        android:layout_width="wrap_content" android:layout_height="wrap_content"
        android:layout_centerVertical="true" android:src="@drawable/addphoto" />
    <TextView android:id="@+id/topLine" android:layout_height="wrap_content"
        android:layout_width="fill_parent" android:layout_margin="4dip"
        android:layout_toRightOf="@+id/Icon" android:background="@layout/rounded"
        android:padding="10dip" android:textSize="20sp" android:singleLine="true"
        android:textColor="#FFFFFF" android:textStyle="bold" android:text="Name" />
    <TextView android:id="@+id/bottomLine" android:layout_height="wrap_content"
        android:layout_width="fill_parent" android:layout_margin="4dip"
        android:layout_toRightOf="@+id/Icon" android:layout_below="@+id/topLine"
        android:padding="10dip" android:background="@layout/rounded"

        android:textSize="20sp" android:singleLine="true" android:textColor="#FFFFFF"
        android:textStyle="bold" android:text="Address" />

</RelativeLayout>

1 Ответ

2 голосов
/ 12 июля 2011

Вы видите этот результат, потому что у вас есть следующие атрибуты в текстовом представлении: android:layout_alignParentTop="true" и android:layout_above="@id/secondLine".

Приведенные выше атрибуты указывают, что верхняя часть должна быть выровнена с родительским элементом, а нижняя должна быть чуть выше компонента 'secondline'.

Я удалил два вышеупомянутых атрибута и внес еще несколько изменений в свой макет, чтобы получить то, что, как я полагаю, вы хотите.Смотрите макет ниже.Я надеюсь, что этот макет достигает того, что вы хотите получить.

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

android:padding="6dip">

<ImageView
    android:id="@+id/icon"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentTop="true"
    android:layout_marginRight="6dip"

    android:src="@drawable/icon" />

<TextView
    android:id="@+id/secondLine"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_toRightOf="@id/icon"
    android:layout_below="@+id/text"
    android:layout_alignParentRight="true"
    android:textSize="20sp"
    android:singleLine="true"
    android:textColor="#FFFFFF"
    android:textStyle="bold"
    android:ellipsize="marquee"
    android:padding="10dip"
    android:layout_margin="5dip"
    android:text="Simple application that shows how to use RelativeLayout" />

<TextView
    android:id="@+id/text"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_toRightOf="@id/icon"
    android:layout_alignBaseline="@id/icon"
    android:textSize="20sp"
    android:singleLine="true"
    android:textColor="#FFFFFF"
    android:textStyle="bold"
    android:padding="10dip"
    android:layout_margin="5dip"
    android:gravity="center_vertical"
    android:text="My Application" />

...