2012-07-05 78 views
10

我已经使用this实施了滑出导航。 current implementation添加阴影以滑出导航

内容应该删除接近菜单列表的右边阴影;像expected result

我试图通过添加视图内容左边缘添加阴影,但它不会显示出来。

任何线索如何做到这一点将不胜感激。

+0

这个问题现在已经失去了重要性。当Facebook是唯一使用这种导航的应用程序时,我试图做到这一点。没有库可以制作相同的用户界面。有几个概念和一半的代码。大约8-9个月之后,图书馆开始出现各种定制,然后答案也即将开始。我不确定我是否可以接受其中一个答案,现在甚至都不确定。这些对于某些图书馆或方法来说太具体,并且仍然更接近我尝试的概念。 – gandharva 2015-07-01 15:44:56

回答

1

我知道这个职位是很老,但我已经很难找到一个解决办法,所以我想这可能帮助别人,如果我贴我的这里。

我想在这个简单的ListView的右侧添加一个淡入淡出。

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

创建一个带有坡度using GIMP的PNG文件。将它添加到/ res/drawable。矿被命名为fade_from_right.png

包围一个RelativeLayout的ListView控件。给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> 
+0

这确实很古老。 @布雷特做了上述解决方案为你工作。我现在使用https://github.com/jfeinstein10/SlidingMenu – gandharva 2013-04-22 12:53:05

+0

我看着使用SlidingMenu,但是,对于android来说,我想让事情尽可能简单,所以我使用非常简单的https:// github。COM /德米特里 - 扎伊采夫/ AndroidSideMenu。话虽如此,我的解决方案并不特定于AndroidSideMenu,因此可用于将阴影应用于任何类型的视图。 – 2013-04-22 23:41:39

0

什么是需要添加另一个视图与列表视图,它不会是完美的,我认为..你可以尝试这样的权利?

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

因为我们可能会设置一些后视图宽度和偏移量。这个选项会让我觉得很好看。

+0

谢谢@Tamilselvan,但这是在jfeinstein的SlidingMenu时代之前发布的(至少在我发现之前)。 – gandharva 2013-04-22 12:49:58

11

家伙,我知道我迟到了,但我有一个很难找到一个解决这个问题的,这是令人满意的我,所以我只是想分享我解决这个。首先,创建一个可绘制的navbar_shadow.xml,并将它与其余的drawables放在一起。它是一个具有透明渐变的矩形。

<?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,因为它是透明的黑色。

+0

完美!通过改变'startColor','endColor'也适用于右侧滑动菜单。 – madlymad 2014-03-17 15:02:18

+0

很好的解决方案,但不幸的是,当完全打开时,阴影和抽屉之间似乎有一个空间 – jiduvah 2014-04-16 15:49:39

+0

确保可绘制渐变的较暗端朝向抽屉侧 - 此给定解决方案适用于升降侧抽屉。如果您正在使用右侧抽屉,则可能需要尊重标准/结束颜色。 – C0D3LIC1OU5 2014-04-16 16:38:37