Добавить тень для сдвига навигации

Я реализовал слайд-навигацию, используя this. current implementation

Содержимое должно опустить тень возле правого края списка меню; например expected result

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

Любая подсказка о том, как это сделать, будет оценена.

Ответ 1

Ребята, я знаю, что опаздываю на вечеринку, но мне было трудно найти ответ на этот вопрос, который был удовлетворительным для меня, поэтому я просто хотел поделиться своим решением. Fist, создайте drawable navbar_shadow.xml и поместите его вместе с остальными вашими чертежами. Все это - прямоугольник с прозрачным градиентом.

<?xml version="1.0" encoding="utf-8"?>

<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">
    <gradient android:startColor="#111"
        android:endColor="#00000000">
    </gradient>
    <size
        android:height="@dimen/activity_vertical_margin"
        android:width="5dp">
    </size>
</shape>

Затем, когда вы создаете экземпляр своего ящика, используйте переменную DrawerLayout, чтобы прикрепить ее к своему ящику.

mDrawerLayout.setDrawerShadow(R.drawable.navbar_shadow, Gravity.LEFT);

Bam. Нет необходимости рисовать по строкам или включать дополнительные ресурсы. Вы можете использовать свой собственный startColor для соответствия цвету вашего ящика, но endColor должен оставаться # 00000000, поскольку он прозрачный черный.

Ответ 2

Я знаю, что этот пост довольно старый, но мне не удалось найти решение, поэтому я подумал, что это может помочь кому-то, если я разместил здесь свое.

Я хотел бы добавить к нему черный цвет с правой стороны этого простого ListView.

<ListView
    android:id="@+id/sideMenuList"
    android:layout_width="300dp"
    android:layout_height="match_parent"/>

Создал PNG файл с градиентом с использованием GIMP. Добавьте его в /res/drawable. Мой был назван fade_from_right.png

Окруженный ListView с RelativeLayout. Дайте RelativeLayout цвет фона, который вы хотите, чтобы ваш ListView имел.

Добавить еще один вид справа от вашего ListView. Установите новый фон представлений как ваш fade_from_right.png

Вот оно.

<RelativeLayout
    android:layout_height="match_parent"
    android:layout_width="300dp"
    android:background="@color/solarized_base02">

    <ListView
        android:id="@+id/sideMenuList"
        android:layout_width="match_parent"
        android:layout_height="match_parent"/>

    <View
        android:layout_alignRight="@id/sideMenuList"
        android:layout_width="5dp"
        android:layout_height="match_parent"
        android:background="@drawable/fade_from_right"/>

</RelativeLayout>

Ответ 3

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

sm = getSlidingMenu();
sm.setShadowDrawable(R.drawable.shadowbar);

так как мы можем установить некоторую ширину и смещение позади. этот вариант даст хороший взгляд, я думаю.