2012-07-05 190 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