2011-10-21 44 views
9

Tôi đã thử nội dung và tìm kiếm vài giờ trước và không có nơi nào nên tôi nghĩ tôi sẽ hỏi tại đây. Về cơ bản phiên bản Honeycomb của Gmail có một listview bên phải cho danh sách thư của nó và khi bạn cuộn listview các mục đi dưới thanh hành động mà dường như có một số hình thức của gradient trên nó với #00FFFFFF ở phía dưới lên đến #FFFFFFFF ở đầu cho ấn tượng của các mục mờ dần.Thanh cuộn kiểu thanh dành cho máy tính bảng Gmail với thanh tác vụ trong suốt

Nhưng điều quan trọng cần lưu ý ở đây là SCROLLBAR trên listview không bao giờ nằm ​​bên dưới ActionBar! và vị trí trên cùng mặc định cho chế độ xem danh sách nằm bên dưới thanh cuộn.

Tôi đã cố gắng triển khai bố cục kiểu tương tự cho ứng dụng của mình bằng chế độ xem cuộn cuộn bên dưới thanh tác vụ có bộ alpha trên đó, trông rất đẹp và tốt nhưng thanh cuộn cũng nằm bên dưới! :(và nó làm cho nó trông một chút kỳ lạ, nó không phải là một lựa chọn tốt đẹp.

tôi đã đạt được những gì tôi có cho đến nay bằng cách sử dụng

getWindow().requestFeature(Window.FEATURE_ACTION_BAR_OVERLAY); 

getActionBar().setBackgroundDrawable(getResources().getDrawable(R.drawable.actionbar_bg)); 

mà là một một XML có thể vẽ được chỉ đơn giản là có màu là #BB000000 (chưa có độ dốc)

đây là hiệu ứng hiện tại, thanh cuộn có thể nhìn thấy bên dưới thanh hành động: (

Current effect

đây là kết quả mong muốn với thanh cuộn không bao giờ đi sâu vào actionbar nhưng nội dung không di chuyển lên bên dưới nó

Desired effect

Edit: Tôi nghĩ rằng đây có lẽ là sử dụng một cái gì đó tùy chỉnh trong Google và đều nhưng từ bỏ tìm nó ra

+0

Họ có thể đặt thanh tác vụ thành nền trong suốt không, sau đó sử dụng ListView.addHeaderView() đã thêm độ dốc vào đầu chế độ xem danh sách? –

+0

Tôi nhớ có một số nói về điều này, nơi bạn có thể sử dụng lề hoặc đệm trong một số loại cách, nhưng tôi không thể nhớ nơi tôi tìm thấy nó. Bất kỳ trợ giúp về vấn đề này sẽ là tuyệt vời. –

Trả lời

2

cuộc gọi này trước super.onCreate(savedInstanceState); trong onCreate hoạt động của bạn

requestWindowFeature(Window.FEATURE_ACTION_BAR_OVERLAY); 

thêm: http://developer.android.com/reference/android/view/Window.html#FEATURE_ACTION_BAR_OVERLAY

+0

Như trong câu hỏi tôi đã làm điều này, nó làm cho listview đi underneathe thanh, nhưng do đó, các scrollbar - Tôi không muốn thanh cuộn bên dưới, tôi chỉ muốn danh sách chảy dưới nó khi ra khỏi đầu – dten

+0

và phiên bản thấp nhất là cấp API 11 .. –

0

chỉ cần sử dụng:

getActionBar().setBackgroundDrawable(null); 
+0

Thậm chí bạn có thử không? :) Không làm việc – dten

+0

Tất nhiên tôi đã làm, và tôi sử dụng trong một sản phẩm thương mại. Nếu nó không hoạt động cho bạn, có thể bạn chưa đặt các thông số khác đúng cách. Hãy cho tôi biết nếu vẫn còn có liên quan. –

+0

Chế độ xem danh sách không mở rộng dưới thanh tác vụ, sau đó mặc dù – dten

1

Tôi không thể nhìn thấy một cách dễ dàng để làm điều này nhưng tôi đã đưa ra hai giải pháp khả thi. Cũng có thể là một lựa chọn tốt hơn nhiều mà tôi không thể thấy rõ ràng. Đầu tiên và dễ nhất là tạo một tệp nền 9patch cho bạn ActionBar có vùng gradient mở rộng và vùng mờ đục cố định ở phía bên tay phải, cùng mặt với thanh cuộn của bạn. Bằng cách này thanh cuộn vẫn sẽ đi theo ActionBar, nhưng nó sẽ bị ẩn. Tuy nhiên nó sẽ có ảnh hưởng của thanh cuộn biến mất/nhận được nhỏ hơn.

Một lựa chọn khác sẽ được chỉnh sửa ngón tay cái thanh cuộn trong xml như thế này:

<ListView android:scrollbarThumbVertical="@drawable/YOUR_CUSTOM_THUMB" ></ListView> 

Sau đó tạo một ngón tay cái thanh cuộn với một minh bạch bù đắp ở đầu trang.

Suy nghĩ về điều đó Tôi nghĩ tùy chọn thứ hai có lẽ là lựa chọn tốt nhất để đi và sẽ cho bạn kết quả tốt nhất. Tôi nhận ra đó là một hack khá crappy. Nhìn vào một cách code để làm điều đó, tôi nghĩ rằng bạn sẽ phải mở rộng một số lớp và ghi đè một tải các phương thức.

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