2012-07-05 40 views
10

Tôi đã triển khai điều hướng trượt bằng cách sử dụng this. current implementationThêm bóng đổ để trượt điều hướng

Nội dung sẽ thả bóng gần cạnh phải của danh sách menu; như expected result

Tôi đang cố gắng thêm bóng bằng cách thêm chế độ xem vào cạnh nội dung bên trái, nhưng nó sẽ không hiển thị.

Mọi đầu mối về cách thực hiện việc này sẽ được đánh giá cao.

+0

Câu hỏi này đã mất tầm quan trọng của nó ngay bây giờ. Tôi đã cố gắng làm điều đó khi Facebook là ứng dụng duy nhất sử dụng loại điều hướng này. Không có thư viện nào để tạo cùng một giao diện người dùng. Có vài khái niệm và một nửa mã nướng. Chỉ khoảng 8-9 tháng sau đó các thư viện bắt đầu xuất hiện với tất cả các loại tùy biến và sau đó câu trả lời cũng bắt đầu xuất hiện. Tôi không chắc liệu tôi có thể chấp nhận một trong những câu trả lời, thậm chí không chắc chắn bây giờ. Đây là quá cụ thể đối với một số thư viện hoặc cách tiếp cận và vẫn gần gũi hơn với khái niệm mà tôi đã cố gắng. – gandharva

Trả lời

1

Tôi biết bài đăng này khá cũ nhưng tôi đã gặp khó khăn trong việc tìm kiếm giải pháp vì vậy tôi nghĩ rằng nó có thể giúp ai đó nếu tôi đăng bài của tôi ở đây.

Tôi muốn thêm phai màu đen ở bên phải có mặt của ListView đơn giản này.

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

Tạo tệp PNG có độ dốc using GIMP. Thêm nó vào/res/drawable. Tên tôi được đặt tên là fade_from_right.png

Bao quanh ListView với RelativeLayout. Cho RelativeLayout màu nền mà bạn muốn ListView của mình có.

Thêm chế độ xem khác ở bên phải của Chế độ xem danh sách của bạn. Đặt nền chế độ xem mới thành 'fade_from_right.png'

Thats it.

<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

Điều này thực sự là cũ. @brett đã làm giải pháp trên làm việc cho bạn. Bây giờ tôi sử dụng https://github.com/jfeinstein10/SlidingMenu – gandharva

+0

Tôi đã xem bằng cách sử dụng SlidingMenu nhưng, là mới cho android Tôi muốn giữ mọi thứ đơn giản nhất có thể vì vậy tôi thay vì sử dụng https: // github rất đơn giản.com/dmitry-zaitsev/AndroidSideMenu. Điều đó đang được nói, giải pháp của tôi không dành riêng cho AndroidSideMenu, vì vậy có thể được sử dụng để áp dụng bóng cho bất kỳ loại chế độ xem nào. –

0

cần thêm một chế độ xem khác với chế độ xem danh sách là gì, nó sẽ không hoàn hảo tôi nghĩ .. Bạn có thể thử như thế này đúng không?

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

vì chúng tôi có thể đặt một số chiều rộng và độ lệch phía sau. tùy chọn này sẽ cung cấp cho một cái nhìn tốt tôi nghĩ.

+0

Cảm ơn @Tamilselvan, nhưng điều này đã được đăng trước thời đại của SliderMenu của jfeinstein (ít nhất là trước khi tôi phát hiện ra). – gandharva

11

Các bạn biết tôi đến muộn nhưng tôi đã gặp khó khăn khi tìm câu trả lời cho vấn đề này thỏa đáng với tôi vì vậy tôi chỉ muốn chia sẻ giải pháp của mình cho vấn đề này. Nắm tay, tạo một navbar_shadow.xml có thể kéo và đặt nó với phần còn lại của các sản phẩm của bạn. Tất cả nó là, là một hình chữ nhật với một gradient trong suốt.

<?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> 

Sau đó, bất cứ nơi nào bạn đang instantiating ngăn kéo của bạn, sử dụng biến DrawerLayout của bạn để gắn nó vào ngăn kéo của bạn.

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

Bam. Không cần vẽ từng dòng hoặc bao gồm bất kỳ tài nguyên bổ sung nào. Bạn có thể sử dụng startColor của riêng bạn để phù hợp với màu ngăn kéo của bạn, nhưng endColor nên giữ nguyên # 00000000 vì nó là một màu đen trong suốt.

+0

Hoàn hảo! Và bằng cách thay đổi 'startColor',' endColor' cũng hoạt động cho menu trượt bên phải. – madlymad

+0

giải pháp tốt đẹp nhưng tiếc là tôi dường như có một không gian giữa bóng và ngăn kéo khi mở hoàn toàn – jiduvah

+0

Hãy chắc chắn rằng kết thúc tối hơn của gradient có thể vẽ được định vị về phía ngăn kéo của bạn- giải pháp này đã được thực hiện cho một ngăn kéo bên nâng. NẾU bạn đang làm việc với một ngăn kéo bên phải, bạn có thể cần phải có màu sắc/màu cuối cùng. – C0D3LIC1OU5

Các vấn đề liên quan