@RusSanta

Как выровнять элемент RecyclerView по правому его краю?

Ситуация такая, что нужно определенные элементы выровнять по правому краю RecyclerView , но я не понимаю как, ни один из этих атрибутов:
android:layout_alignParentEnd="true"
android:layout_alignParentRight="true"
android:layout_gravity="end"
Вместе, или не вместе, они не работают, margin работает, но не вижу смысла высчитывать отступы, когда скорее всего есть возможность спокойно одним атрибутом все сделать, без чисел

p.s. Для элементов правого и левого края созданы свои шаблоны

<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"

    android:layout_alignParentEnd="true"
    android:layout_alignParentRight="true"
    android:layout_gravity="end"
    android:foreground="?android:attr/selectableItemBackground"
    app:cardCornerRadius="4dp"
    app:cardElevation="1dp"
    app:cardUseCompatPadding="true">

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        

        android:orientation="vertical"
        android:padding="8dp">

        <LinearLayout
            android:id="@+id/linearLayout2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:gravity="center"
            android:orientation="horizontal">

            <ImageView
                android:id="@+id/ivAvatar"
                android:layout_width="@dimen/size_avatar_imageview"
                android:layout_height="@dimen/size_avatar_imageview"

                android:src="@mipmap/ic_launcher" />

            <TextView
                android:id="@+id/tvPhone"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                
                android:layout_marginLeft="8dp"
                android:text="@string/unidentified_user"
                android:textAppearance="@style/TextAppearance.AppCompat.Title" />
        </LinearLayout>

        <TextView
            android:id="@+id/tvText"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            
            android:layout_marginTop="8dp"
            
            
            android:text="New Text"
            android:textAppearance="@style/TextAppearance.AppCompat.Body1" />

    </LinearLayout>
</android.support.v7.widget.CardView>
  • Вопрос задан
  • 817 просмотров
Пригласить эксперта
Ответы на вопрос 1
@red-barbarian
Все работает. Все правое.)
Вообще, все делается так:
делаем макет элемента RecyclerView.
например
<LinearLayout ...>
 <CardView>
<TextView />
</CardView>
</LinearLayout>

т.е. лайаут , внутри карточка, внутри текст (или элементы и др layout)
Затем на основе элементов (R.id.text_view) делаем свой ViewHolder - элемент которые будет показывать наши данные.
Затем на основе макета элемента и данных делаем свой Адаптер. в котором описано создание ViewHolder - ов, и их связывание с данными.
Затем при создании (инициализации в onCreate) мы устанавливаем LayoutManager для Recycler
Т.е.
Если мы хотим Recycler - строки на всю ширину экрана одна за одной сверху вниз, то
наш элемент
будет иметь
высоту warp, ширину match
В редакторе мы его так и увидим.
Recycler это изображение клонирует и подставляет данные.
Замечание. старайтесь Уменьшать количество Layout в макете. Часто можно несколько заменить одним, например RelativeLayout. Это сильно увеличит быстродействие.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы