10

Я работаю над сеткой, используя recyclerview в android. Сетка занимает часть экрана и имеет тень. Чтобы получить желаемый эффект тени, я использую значение высоты 12 дп. Но, похоже, это не работает, поскольку я не вижу никакой высоты (тени) сетки. Почему это происходит? Рециркулятор не поддерживает повышение?Как правильно установить значение высоты для recyclerview?

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools" 
android:layout_width="match_parent" 
android:id="@+id/activity_grid_layout" 
android:background="@drawable/gradient" 
android:layout_height="match_parent" 
tools:context="com.mindhive.mindhive.activities.GridActivity"> 

<android.support.v7.widget.RecyclerView 
    android:id="@+id/grid_recycler_view" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:layout_marginBottom="110dp" 
    android:layout_marginLeft="15dp" 
    android:layout_marginTop="80dp" 
    android:background="@color/transparent" 
    android:elevation="12dp" 
    android:scrollIndicators="none" 
    android:scrollbars="none" 
    android:padding="0dp" /> 

<ImageView 
    android:id="@+id/imageView" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignBottom="@+id/grid_recycler_view" 
    android:layout_alignStart="@+id/grid_recycler_view" 
    android:layout_marginBottom="-18dp" 
    android:layout_marginStart="67dp" 
    android:src="@drawable/main_filter" 
    android:elevation="1dp" /> 
...... 
+0

Возможно, вы хотите использовать карты, которые можно поднимать по высоте. –

+1

Мне не нужна высота для предметов в recyclerview, а я ищу возвышение для всего recyclerview. – Neanderthal

ответ

16

Я нашел ответ после небольшого поиска от here. Проблема была прозрачная. Elevation работает только с непрозрачными фонами на представлениях. Чтобы исправить это, мы должны установить android:outlineProvider="bounds" на вид и android:clipToPadding="false" на родителя представления.

Надеюсь, это поможет кому-то.

+0

Эти два атрибута работали для меня, но мне нужно было добавить его для самого представления, а не его родителя, чтобы он работал –

0

Андроид: высота применяется только к теням на устройствах, на которых работает Lollipop или более поздняя версия. Если вы хотите использовать более старые устройства, вам нужно создать тень самостоятельно.

+0

Мое устройство работает на android 5.1.1, поэтому тени должны работать отлично. – Neanderthal

+1

Что произойдет, если вы используете 'android: background =" @ android: color/white "' вместо 'android: background =" @ color/transparent "'? Кстати, есть встроенный цвет для прозрачного: «@android: color/transparent» ' –

+0

Да, это исправит. Спасибо, что указали на прозрачный ресурс android. Я нашел проблему и исправил ее с помощью [link] (http://stackoverflow.com/questions/27477371/android-elevation-not-showing-a-shadow). Я устанавливал фон прозрачным, который не бросает тени. – Neanderthal

1

Для леденца, и вы можете использовать Android: свойство высоты, но ниже версий леденцов вы должны дать пользовательскую тень так смотрите ниже код для тени

card_background.xml

<?xml version="1.0" encoding="utf-8"?> 
<layer-list xmlns:android="http://schemas.android.com/apk/res/android"> 
<item> 
    <shape android:shape="rectangle"> 
     <solid android:color="#CABBBBBB"/> 
     <corners android:radius="2dp" /> 
    </shape> 
</item> 

<item 
    android:left="0dp" 
    android:right="0dp" 
    android:top="0dp" 
    android:bottom="2dp"> 
    <shape android:shape="rectangle"> 
     <solid android:color="@android:color/white"/> 
     <corners android:radius="2dp" /> 
    </shape> 
</item> 
</layer-list> 

Дайте этот файл как фоном для вашего регенерирующего файла надувных файлов, он будет работать нормально.

+0

Если вы посмотрите на мой код, я уже использую атрибут Elevation, но он все еще не работает, хотя мое устройство работает на леденец. – Neanderthal

+0

then u можете использовать этот файл как фоновый рисунок для вашего файла inflater, он будет работать в любой версии. –

 Смежные вопросы

  • Нет связанных вопросов^_^