Высота Recyclerview постепенно изменяется при прокрутке - PullRequest
0 голосов
/ 28 мая 2018

У меня есть recyclerview, к которому я добавил elevation.Кажется, что высота становится выше в зависимости от того, где на экране расположен предмет вертикально, тень растет при прокрутке предмета вниз.Я попытался добавить цвет фона, который не помог.Я нашел другой пост с видео, показывающим проблему.https://youtu.be/nROYq8rpUMs

Вот мое относительное расположение, где я добавляю высоту.

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="#EDEDED"
    android:focusable="?attr/selectableItemBackground"
    android:layout_marginTop="15dp"
    android:layout_marginBottom="15dp"
    android:paddingTop="10dp"
    android:paddingBottom="10dp"
    android:id="@+id/newsRowRelativeLayout"
    android:elevation="4dp">

    <ImageView
        android:id="@+id/newsImage"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:maxHeight="300dp"
        android:layout_marginTop="5dp"
        android:layout_marginBottom="15dp"
        android:scaleType="centerCrop"
        android:adjustViewBounds="true"
        android:background="@color/mainTextBGColor" />

    <TextView
        android:id="@+id/newsTitle"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="@android:color/transparent"
        android:layout_below="@id/newsType"
        android:textStyle="bold"
        android:textColor="@color/news_title"
        android:paddingLeft="@dimen/activity_margin"
        android:paddingRight="@dimen/activity_margin"
        android:textSize="@dimen/news_title_main" />

    <TextView
        android:id="@+id/newsType"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="@android:color/transparent"
        android:layout_below="@id/newsImage"
        android:textStyle="bold"
        android:textAllCaps="true"
        android:layout_marginTop="5dp"
        android:layout_marginBottom="10dp"
        android:textColor="@color/mainBGColor"
        android:paddingLeft="@dimen/activity_margin"
        android:paddingRight="@dimen/activity_margin"
        android:textSize="@dimen/news_tag_detailed" />

    <TextView
        android:id="@+id/newsText"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@id/newsTitle"
        android:background="@android:color/transparent"
        android:ellipsize="end"
        android:maxLines="3"
        android:textColor="@color/news_text"
        android:layout_marginTop="10dp"
        android:layout_marginBottom="5dp"
        android:paddingLeft="@dimen/activity_margin"
        android:paddingRight="@dimen/activity_margin"
        android:textSize="@dimen/news_text_main"/>

</RelativeLayout>

1 Ответ

0 голосов
/ 28 мая 2018

В этом нет ничего плохого.Эффект Elevation использует так называемые Key-Light и Ambient-Light .Один находится прямо над экраном (Ambient-Light), другой (Key-Light) с углом 45 ° над экраном.Вот почему тень движется во время прокрутки.

tl; dr Тень не статична, а рассчитывается динамически.См. Также следующую картинку, поясняющую концепцию:

material design shadows concept

...