Как выровнять текст textview в RecyclerView внизу

Я создаю пользовательский интерфейс списка размеров текста, который будет иметь разные размеры рендеринга одного и того же текста в RecyclerView.

Требование состоит в том, чтобы текстовый элемент, отображаемый в RecyclerView, отображался снизу представления, а его рендеринг — сверху. Вот мой код:

Объявление RecyclerView:

<RelativeLayout
        android:id = "@+id/sizes_layout"
        android:layout_width = "wrap_content"
        android:layout_height = "wrap_content"
        android:layout_marginTop = "50dp"
        android:elevation = "30dp"
        android:paddingVertical = "10dp"
        app:layout_constraintBottom_toBottomOf = "parent"
        app:layout_constraintEnd_toEndOf = "parent"
        app:layout_constraintStart_toStartOf = "parent"
        app:layout_constraintTop_toTopOf = "parent">


        <RelativeLayout
            android:id = "@+id/size_options"
            android:layout_width = "wrap_content"
            android:layout_height = "wrap_content"
            android:layout_below = "@+id/subtitles"
            android:layout_gravity = "center_horizontal"
            android:layout_marginHorizontal = "20dp"
            android:layout_marginTop = "16dp"
            android:orientation = "horizontal">

            <TextView
                android:id = "@+id/size_textview"
                android:layout_width = "wrap_content"
                android:layout_height = "wrap_content"
                android:drawablePadding = "16dp"
                android:gravity = "center_vertical"
                android:minWidth = "50dp"
                android:text = "@string/size"
                android:textColor = "@color/white"
                android:textStyle = "bold"
                tools:textColor = "@color/black" />

            <androidx.recyclerview.widget.RecyclerView
                android:id = "@+id/text_track_size_list_view"
                android:layout_width = "wrap_content"
                android:layout_height = "wrap_content"
                android:layout_toEndOf = "@+id/size_textview"
                android:orientation = "horizontal"
                app:layoutManager = "androidx.recyclerview.widget.LinearLayoutManager" />
        </RelativeLayout>
    </RelativeLayout>

Просмотр объявления элемента:

<?xml version = "1.0" encoding = "utf-8"?>
<FrameLayout xmlns:android = "http://schemas.android.com/apk/res/android"
    xmlns:tools = "http://schemas.android.com/tools"
    android:id = "@+id/focus_view"
    android:layout_width = "wrap_content"
    android:layout_height = "wrap_content"
    android:layout_marginHorizontal = "10dp">

    <TextView
        android:id = "@+id/row_item"
        android:layout_width = "wrap_content"
        android:layout_height = "wrap_content"
        android:gravity = "bottom"
        android:paddingHorizontal = "10dp"
        android:paddingVertical = "7dp"
        android:textAllCaps = "false"
        android:textColor = "@drawable/text_size_color"
        tools:text = "Aa" />
</FrameLayout>

Метод держателя привязки вида:

    override fun onBindViewHolder(holder: ViewHolder, position: Int) {
        val textSizeOption: TextSizeOption = extSizeOptions[position]
        holder.focusView.tag = textSizeOption

        holder.rowItem.textSize = textSizeOption.fontSize
        if (mSelectedFormat != null && mSelectedFormat == textSizeOption.id) {
            holder.focusView.isSelected = true
        } else {
            holder.focusView.isSelected = (position == 0 && mSelectedFormat == null)
        }

    }

Я пробовал несколько вещей, таких как обертывание представления элемента в относительном макете и предоставление alignParentBottom и т. д., но это тоже не сработало.

Вот скриншот того, как это выглядит сейчас: Выравнивание текста по верхнему краю

Даже метка размера не выравнивается по центру, как указано в коде. Не уверен, что я что-то упустил, но любая помощь будет очень признательна

0
0
55
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

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

Подобное изменение элемента просмотра решит вашу проблему.

<?xml version = "1.0" encoding = "utf-8"?>
<LinearLayout xmlns:android = "http://schemas.android.com/apk/res/android"
    android:id = "@+id/focus_view"
    android:layout_width = "wrap_content"
    android:layout_height = "match_parent"
    android:layout_marginHorizontal = "10dp"
    android:orientation = "horizontal">

    <TextView
        android:layout_gravity = "center_vertical"
        android:id = "@+id/row_item"
        android:layout_width = "0dp"
        android:layout_height = "wrap_content"
        android:layout_weight = "1"
        android:textColor = "@drawable/text_size_color"
        android:text = "Aa" />
</LinearLayout>

Спасибо, @shreehari-k, это прекрасно решает проблему. Другая проблема, с которой я все еще сталкиваюсь, заключается в том, что текст Size не выравнивает WRT по центру RecyclerView, как я могу это исправить? Спасибо за помощь!!

user18543718 22.03.2022 19:16

Не беспокойтесь, я исправил 2-ю проблему. Спасибо

user18543718 22.03.2022 19:33

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