RecyclerView элементы уходят с экрана - PullRequest
0 голосов
/ 28 октября 2019

У меня есть RecyclerView с элементами в нем, я хочу, чтобы кнопка удаления для элемента была справа. Когда я тестирую его на эмуляторе или смотрю на него в Android Studio, он выглядит нормально, но когда я запускаю приложение на реальном устройстве, кнопка выходит за границы экрана. У меня вопрос, как установить правильное выравнивание для кнопки и сделать так, чтобы текст не перекрывал кнопку, а заканчивался многоточием или переносами на следующей строке.

На эмуляторе и в Android Studio: На эмуляторе В Android Studio

Но на моем реальном устройстве: На Samsung Galaxy Grand Prime VE Duos SM-G531H / DS

Мой файл list_item_view.xml:

<?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"
    android:layout_width="match_parent"
    android:layout_height="72dp"
    xmlns:tools="http://schemas.android.com/tools"
    android:padding="8dp"
    android:paddingStart="16dp"
    android:paddingEnd="16dp"
    android:gravity="center_vertical"
    android:orientation="horizontal">


    <TextView
        android:id="@+id/text_list_item"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_vertical"
        android:textSize="24sp"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        tools:text="ExampleList" />

    <ImageView
        android:id="@+id/imageView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center|end"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:srcCompat="@android:drawable/ic_menu_delete" />

</androidx.constraintlayout.widget.ConstraintLayout>

Я хотел бы сделать что-то подобное с текстом и кнопками: Список в приложении Почта

Ответы [ 2 ]

0 голосов
/ 28 октября 2019

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

<?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="72dp"
android:gravity="center_vertical"
android:orientation="horizontal"
android:padding="8dp">


<TextView
    android:id="@+id/text_list_item"
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:layout_gravity="center_vertical"
    android:textSize="24sp"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintEnd_toStartOf="@+id/guideline2"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toTopOf="parent"
    tools:text="Hello example" />

<ImageView
    android:id="@+id/imageView"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center|end"
    android:layout_marginEnd="8dp"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintStart_toEndOf="@+id/guideline2"
    app:layout_constraintTop_toTopOf="parent"
    app:srcCompat="@android:drawable/ic_menu_delete" />

<androidx.constraintlayout.widget.Guideline
    android:id="@+id/guideline2"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:orientation="vertical"
    app:layout_constraintGuide_end="56dp" />

</androidx.constraintlayout.widget.ConstraintLayout>
0 голосов
/ 28 октября 2019

Попробуйте, используя Relative layout

<?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:layout_height="72dp"
    xmlns:tools="http://schemas.android.com/tools"
    android:padding="8dp"
    android:paddingStart="16dp"
    android:paddingEnd="16dp"
    android:gravity="center_vertical"
    android:orientation="horizontal">


    <TextView
        android:id="@+id/text_list_item"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_vertical"
        android:textSize="24sp"
        tools:text="ExampleList" />

    <ImageView
        android:id="@+id/imageView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentEnd="true"
        android:layout_gravity="center|end"
        app:srcCompat="@android:drawable/ic_menu_delete" />

</RelativeLayout>

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

<?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"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:gravity="center_vertical"
    android:orientation="horizontal"
    android:padding="8dp"
    android:paddingStart="16dp"
    android:paddingEnd="16dp">

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

        <TextView
            android:id="@+id/text_list_item_head"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center_vertical"
            android:layout_marginBottom="5dp"
            android:textSize="22sp"
            tools:text="ExampleList" />

        <TextView
            android:id="@+id/text_list_item_desc"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center_vertical"
            android:textSize="18sp"
            tools:text="Example List Description" />

    </LinearLayout>

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

        <TextView
            android:id="@+id/textView"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center|end"
            android:layout_marginBottom="5dp"
            android:text="15 m"
            app:srcCompat="@android:drawable/ic_menu_delete" />

        <ImageView
            android:id="@+id/imageView"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center|end"
            app:srcCompat="@android:drawable/ic_menu_delete" />

    </LinearLayout>

</RelativeLayout>
...