Как мне сделать TextView рядом с ImageView в xml

Как я могу создать TextView рядом с ImageView в xml? Я старался изо всех сил, но все равно не могу.

Так: Рамка дисплея

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

Это мой xml-код (в итоге получается беспорядочный макет)

<?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-auto"
    android:layout_width = "match_parent"
    android:background = "@android:color/white"
    android:padding = "@dimen/activity_vertical_margin"
    android:orientation = "vertical"
    android:layout_height = "match_parent">

    <ImageView
        android:id = "@+id/img_item_photo"
        android:layout_width = "150dp"
        android:layout_height = "200dp"
        android:layout_marginEnd = "@dimen/activity_horizontal_margin"
        android:layout_marginRight = "@dimen/activity_horizontal_margin"
        android:src = "@drawable/oneplus_7_pro_r1" />

<LinearLayout
    android:layout_width = "match_parent"
    android:layout_height = "wrap_content"
    android:layout_toEndOf = "@id/img_item_photo"
    android:layout_toRightOf = "@id/img_item_photo"
    android:orientation = "vertical" >

    <TextView
        android:id = "@+id/tv_item_name"
        android:layout_width = "match_parent"
        android:layout_height = "wrap_content"
        android:layout_marginBottom = "165dp"
        android:layout_marginLeft = "@dimen/activity_horizontal_margin"
        android:layout_marginRight = "@dimen/activity_horizontal_margin"
        android:text = "@string/Hape_name"
        android:textSize = "16sp"
        android:textStyle = "bold" />

    <TextView
        android:id = "@+id/tv_item_Desc"
        android:layout_width = "match_parent"
        android:layout_height = "wrap_content"
        android:layout_marginLeft = "@dimen/activity_horizontal_margin" />

 </LinearLayout>
</RelativeLayout>

В чем проблема с вашим текущим кодом? Я думаю, вы все делаете правильно, я тоже поступлю так же.

Ezio 16.07.2019 07:12

Я не уверен, что что-то не так или чего-то не хватает в коде, но отображение, предоставляемое кодом, не соответствует тому, что я ожидал (см. Изображение, которое я загрузил в вопросе выше) @Ezio

Laplace M 16.07.2019 07:19

это слишком просто .. измените ориентацию основного макета на горизонтальную. вот так: android:orientation = "vertical" --> android:orientation = "horizontal"

Mahendra Gohil 16.07.2019 07:36
1
3
126
5
Перейти к ответу Данный вопрос помечен как решенный

Ответы 5

Ответ принят как подходящий

Просто удалите android:layout_marginBottom = "165dp" из вашего текстового представления.

Попробуй это

<?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-auto"
    android:layout_width = "match_parent"
    android:background = "@android:color/white"
    android:layout_height = "match_parent">

    <ImageView
        android:id = "@+id/img_item_photo"
        android:layout_width = "150dp"
        android:layout_height = "200dp"
        android:src = "@drawable/ic_search_black" />

    <LinearLayout
        android:layout_width = "match_parent"
        android:layout_height = "wrap_content"
        android:layout_toEndOf = "@id/img_item_photo"
        android:layout_toRightOf = "@id/img_item_photo"
        android:orientation = "vertical" >

        <TextView
            android:id = "@+id/tv_item_name"
            android:layout_width = "match_parent"
            android:layout_height = "wrap_content"
            android:text = "@string/load_available"
            android:textSize = "16sp"
            android:textStyle = "bold" />

        <TextView
            android:id = "@+id/tv_item_Desc"
            android:text = "@string/load_available"
            android:layout_width = "match_parent"
            android:layout_height = "wrap_content" />

    </LinearLayout>
</RelativeLayout>

Также попробуйте с LinearLayout

<?xml version = "1.0" encoding = "utf-8"?>
<LinearLayout xmlns:android = "http://schemas.android.com/apk/res/android"
    xmlns:app = "http://schemas.android.com/apk/res-auto"
    android:layout_width = "match_parent"
    android:background = "@android:color/white"
    android:orientation = "horizontal"
    android:layout_height = "wrap_content">

    <ImageView
        android:id = "@+id/img_item_photo"
        android:layout_width = "150dp"
        android:layout_height = "200dp"
        android:src = "@drawable/ic_search_black" />

    <LinearLayout
        android:layout_width = "0dp"
        android:layout_weight = "1"
        android:layout_height = "wrap_content"
        android:orientation = "vertical" >

        <TextView
            android:layout_width = "match_parent"
            android:layout_height = "wrap_content"
            android:text = "@string/load_available"
            android:textSize = "16sp"
            android:textStyle = "bold" />

        <TextView
            android:layout_width = "match_parent"
            android:layout_height = "wrap_content"
            android:text = "@string/load_available"
            android:textSize = "16sp"
            android:textStyle = "bold" />

        <TextView
            android:id = "@+id/tv_item_name"
            android:layout_width = "match_parent"
            android:layout_height = "wrap_content"
            android:text = "@string/load_available"
            android:textSize = "16sp"
            android:textStyle = "bold" />

        <TextView
            android:id = "@+id/tv_item_Desc"
            android:text = "@string/load_available"
            android:layout_width = "match_parent"
            android:layout_height = "wrap_content" />

    </LinearLayout>
</LinearLayout>

о боже, вы правы, это решает мою проблему, просто удалив android: layout_marginBottom = "165dp", большое спасибо

Laplace M 16.07.2019 08:37

эй, сэр, можем ли мы заменить все текстовое представление на recyclerview? или не?

Laplace M 16.07.2019 18:59

@LaplaceM да, если вы хотите отобразить список текстовых представлений, вы можете использовать recyclerview

AskNilesh 16.07.2019 19:34

Вот решение,

<?xml version = "1.0" encoding = "utf-8"?>

<LinearLayout
    android:layout_width = "match_parent"
    android:layout_height = "wrap_content"
    android:layout_margin = "10dp"
    android:orientation = "horizontal">

    <ImageView
        android:id = "@+id/img_item_photo"
        android:layout_width = "150dp"
        android:layout_height = "200dp"
        android:layout_marginEnd = "@dimen/activity_horizontal_margin"
        android:layout_marginRight = "@dimen/activity_horizontal_margin" />

    <LinearLayout
        android:id = "+@id/layout_field"
        android:layout_width = "0dp"
        android:layout_weight = "1"
        android:layout_height = "wrap_content"
        android:orientation = "vertical">

        <TextView
            android:id = "@+id/tv_item_name"
            android:layout_width = "match_parent"
            android:layout_height = "wrap_content"
            android:layout_marginLeft = "@dimen/activity_horizontal_margin"
            android:layout_marginRight = "@dimen/activity_horizontal_margin"
            android:text = "Hape_name"
            android:textSize = "16sp"
            android:textStyle = "bold" />

        <TextView
            android:id = "@+id/tv_item_Desc"
            android:layout_width = "match_parent"
            android:layout_height = "wrap_content"
            android:layout_marginLeft = "@dimen/activity_horizontal_margin" />

    </LinearLayout>

</LinearLayout>

Добавьте больше textView внутри layout_field.

Хотя ваш код выглядит нормально с небольшими улучшениями.

Вот какой-то альтернативный код

<?xml version = "1.0" encoding = "utf-8"?>
<LinearLayout
xmlns:android = "http://schemas.android.com/apk/res/android"
android:layout_width = "match_parent"
android:background = "@android:color/white"
android:padding = "@dimen/activity_vertical_margin"
android:orientation = "horizontal"
android:layout_height = "match_parent">

<ImageView
    android:padding = "10dp"
    android:layout_weight = "1"
    android:id = "@+id/img_item_photo"
    android:layout_width = "0dp"
    android:layout_height = "200dp"
    android:src = "@drawable/side_nav_bar" />

<LinearLayout
    android:padding = "10dp"
    android:layout_weight = "1"
    android:layout_width = "0dp"
    android:layout_height = "wrap_content"
    android:orientation = "vertical" >

    <TextView
        android:id = "@+id/tv_item_name"
        android:layout_width = "match_parent"
        android:layout_height = "wrap_content"
        android:text = "Test"
        android:textSize = "16sp"
        android:textStyle = "bold" />

    <TextView
        android:id = "@+id/tv_item_Desc"
        android:layout_width = "match_parent"
        android:layout_height = "wrap_content"
        android:text = "Test 1"
        />

    <TextView
        android:id = "@+id/tv_item_name1"
        android:layout_width = "match_parent"
        android:layout_height = "wrap_content"
        android:text = "Test"
        android:layout_marginTop = "5dp"
        android:textSize = "16sp"
        android:textStyle = "bold" />

    <TextView
        android:id = "@+id/tv_item_Desc2"
        android:layout_width = "match_parent"
        android:layout_height = "wrap_content"
        android:text = "Test 2"
        />

</LinearLayout>

Вы можете просто сделать это представление, используя ConstraintLayout, и оно будет выглядеть так, как показано на изображении ниже, и я разместил XML, также используйте это:

Здесь используется Небольшое примечание:AndroidX. Если вы не знакомы с андроидX, сделайте небольшой перерыв, чтобы узнать о андроидX, а затем попробуйте это.

если вы используете библиотеку поддержки (не androidX), заменитеandroidx.constraintlayout.widget.ConstraintLayout с android.support.constraint.ConstraintLayout в коде ниже

<?xml version = "1.0" encoding = "utf-8"?>
       <androidx.constraintlayout.widget.ConstraintLayout      
        xmlns:android = "http://schemas.android.com/apk/res/android"
        xmlns:app = "http://schemas.android.com/apk/res-auto"
        xmlns:tools = "http://schemas.android.com/tools"
        android:layout_width = "match_parent"
        android:layout_height = "match_parent"
        android:background = "@android:color/white">

        <ImageView
            android:id = "@+id/imageView1"
            android:layout_width = "wrap_content"
            android:layout_height = "wrap_content"
            app:layout_constraintStart_toStartOf = "parent"
            app:layout_constraintTop_toTopOf = "parent"
            tools:srcCompat = "@tools:sample/avatars" />

        <TextView
            android:id = "@+id/tv_1"
            android:layout_width = "wrap_content"
            android:layout_height = "wrap_content"
            android:layout_marginStart = "@dimen/margin_8dp"
            android:text = "textView 1"
            android:textAppearance = "@style/TextAppearance.AppCompat.Medium"
            android:textColor = "@color/black"
            app:layout_constraintBottom_toTopOf = "@id/tv_2"
            app:layout_constraintStart_toEndOf = "@id/imageView1"
            app:layout_constraintTop_toTopOf = "@id/imageView1" />

        <TextView
            android:id = "@+id/tv_2"
            android:layout_width = "wrap_content"
            android:layout_height = "wrap_content"
            android:layout_marginStart = "@dimen/margin_8dp"
            android:text = "textView 2"
            android:textAppearance = "@style/TextAppearance.AppCompat.Medium"
            android:textColor = "@color/black"
            app:layout_constraintBottom_toTopOf = "@id/tv_3"
            app:layout_constraintStart_toEndOf = "@id/imageView1"
            app:layout_constraintTop_toBottomOf = "@id/tv_1" />

        <TextView
            android:id = "@+id/tv_3"
            android:layout_width = "wrap_content"
            android:layout_height = "wrap_content"
            android:layout_marginStart = "@dimen/margin_8dp"
            android:text = "textView 3"
            android:textAppearance = "@style/TextAppearance.AppCompat.Medium"
            android:textColor = "@color/black"
            app:layout_constraintBottom_toTopOf = "@id/tv_4"
            app:layout_constraintStart_toEndOf = "@id/imageView1"
            app:layout_constraintTop_toBottomOf = "@id/tv_2" />

        <TextView
            android:id = "@+id/tv_4"
            android:layout_width = "wrap_content"
            android:layout_height = "wrap_content"
            android:layout_marginStart = "@dimen/margin_8dp"
            android:text = "textView 4"
            android:textAppearance = "@style/TextAppearance.AppCompat.Medium"
            android:textColor = "@color/black"
            app:layout_constraintBottom_toBottomOf = "@id/imageView1"
            app:layout_constraintStart_toEndOf = "@id/imageView1"
            app:layout_constraintTop_toBottomOf = "@id/tv_3" />

    </androidx.constraintlayout.widget.ConstraintLayout>

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

<LinearLayout 
xmlns:android = "http://schemas.android.com/apk/res/android"
xmlns:TextViewandroid = "http://schemas.android.com/tools"
xmlns:app = "http://schemas.android.com/apk/res-auto"
android:layout_width = "match_parent"
android:layout_height = "wrap_content"
android:background = "@color/icons"
android:orientation = "horizontal"
android:weightSum = "2">

<LinearLayout
    android:layout_width = "0dp"
    android:layout_height = "match_parent"
    android:layout_margin = "@dimen/margin_10dp"
    android:layout_weight = "1"
    android:background = "@color/icons"
    android:gravity = "center">

    <ImageView
        android:id = "@+id/img_item_photo"
        android:layout_width = "match_parent"
        android:layout_height = "match_parent"
        android:src = "@drawable/background_img" />

</LinearLayout>

<LinearLayout
    android:layout_width = "0dp"
    android:layout_height = "wrap_content"
    android:layout_gravity = "center"
    android:layout_weight = "1"
    android:background = "@color/icons">

    <LinearLayout
        android:layout_width = "match_parent"
        android:layout_height = "wrap_content"
        android:orientation = "vertical">


        <TextView
            android:layout_width = "wrap_content"
            android:layout_height = "wrap_content"
            android:layout_margin = "@dimen/margin_5dp"
            android:background = "@drawable/style_curve_accent"
            android:text = "Title"
            android:textSize = "@dimen/margin_15sp"
            android:textStyle = "bold" />

        <TextView
            android:layout_width = "match_parent"
            android:layout_height = "wrap_content"
            android:layout_margin = "@dimen/margin_5dp"
            android:background = "@drawable/style_edittext"
            android:text = "Descripltion is Here. Descripltion is Here."
            android:textSize = "@dimen/margin_15sp"
            android:textStyle = "bold" />

        <TextView
            android:layout_width = "wrap_content"
            android:layout_height = "wrap_content"
            android:layout_margin = "@dimen/margin_5dp"
            android:layout_marginTop = "@dimen/margin_5dp"
            android:background = "@drawable/style_curve_accent"
            android:text = "Title"
            android:textSize = "@dimen/margin_20dp"
            android:textStyle = "bold" />

        <TextView
            android:layout_width = "match_parent"
            android:layout_height = "wrap_content"
            android:layout_margin = "@dimen/margin_5dp"
            android:background = "@drawable/style_edittext"
            android:text = "Descripltion is Here.Descripltion is Here."
            android:textSize = "@dimen/margin_15sp"
            android:textStyle = "bold" />

        <TextView
            android:layout_width = "wrap_content"
            android:layout_height = "wrap_content"
            android:layout_margin = "@dimen/margin_5dp"
            android:background = "@drawable/style_curve_accent"
            android:text = "Title"
            android:textSize = "@dimen/margin_20dp"
            android:textStyle = "bold" />

        <TextView
            android:layout_width = "match_parent"
            android:layout_height = "wrap_content"
            android:layout_margin = "@dimen/margin_5dp"
            android:background = "@drawable/style_edittext"
            android:text = "Descripltion is Here.Descripltion is Here."
            android:textSize = "@dimen/margin_15sp"
            android:textStyle = "bold" />

        <TextView
            android:layout_width = "wrap_content"
            android:layout_height = "wrap_content"
            android:layout_margin = "@dimen/margin_5dp"
            android:background = "@drawable/style_curve_accent"
            android:text = "Title"
            android:textSize = "@dimen/margin_20dp"
            android:textStyle = "bold" />

        <TextView
            android:layout_width = "match_parent"
            android:layout_height = "wrap_content"
            android:layout_margin = "@dimen/margin_5dp"
            android:background = "@drawable/style_edittext"
            android:text = "Description is here. Description is Here."
            android:textSize = "@dimen/margin_15sp"
            android:textStyle = "bold" />
    </LinearLayout>
</LinearLayout>

Надеюсь, это поможет вам! Спасибо!!

Другие вопросы по теме