2010-02-13 46 views
11

Tôi muốn có cửa sổ xem ở phía dưới cùng của trang chính xác như chế độ xem bàn phím ảo trong phần soạn thảo của ứng dụng Mms. Nó trượt từ dưới lên, như thể nó đang được thêm vào một LinearLayout theo định hướng theo chiều dọc, chỉ làm cho ListView nhỏ hơn. Nó trở thành một phần của bố cục hiện tại thay vì bật lên trên đầu trang của nó. Tôi muốn điều này chính xác với Chế độ xem tùy chỉnh của riêng tôi.Android: Có chế độ xem Xem tùy ý trong Chế độ xem khác như bàn phím phần mềm

Câu hỏi có ý nghĩa gì không?

Trả lời

18

Chắc chắn điều đó có ý nghĩa!

Tôi có bản trình diễn SlidingPanel minh họa kỹ thuật chung. Đó là một chút phức tạp hơn nó cần phải được, vì nó thực hiện một lớp tùy chỉnh View.

Gist là bạn thực sự có bảng điều khiển của bạn trong bố trí để bắt đầu, vị trí bạn muốn nó được, nhưng bạn đặt android:visibility="gone" để nó không xuất hiện. Khi bạn muốn nó hiển thị, hãy hiển thị nó và thiết lập một số TranslateAnimation để trượt nó vào.

+0

Chà, điều đó dễ hơn nhiều so với tôi kỳ vọng. Cảm ơn nhiều! – synic

+0

Có thể thêm chế độ xem đó theo chương trình không? Tôi muốn sử dụng nó trong các hoạt động khác nhau và tự hỏi nếu tôi cần phải đặt nó trong mọi bố trí để chuẩn bị ... –

+0

@SvenMenschner: Bạn sẽ cần thêm một hàm tạo đối số đơn để cung cấp 'Context' và thêm một setter để có thể sử dụng được tốc độ bên ngoài tệp bố cục. – CommonsWare

0

Hôm nay có chế độ xem trượt để sử dụng như được khám phá in this question.

Chỉ cần sử dụng lib này và thêm những điều sau đây trong cách bố trí của bạn:

<com.wunderlist.slidinglayer.SlidingLayer 
xmlns:slidingLayer="http://schemas.android.com/apk/res-auto" 
android:id="@+id/slidingLayer1" 
android:layout_width="@dimen/layer_width" 
android:layout_height="@dimen/layer_height" 
slidingLayer:shadowDrawable="@drawable/sidebar_shadow" 
slidingLayer:shadowSize="@dimen/shadow_size" 
slidingLayer:offsetDistance="@dimen/offset_distance" 
slidingLayer:previewOffsetDistance="@dimen/preview_offset_distance" 
slidingLayer:stickTo="top|bottom|right|left" 
slidingLayer:changeStateOnTap="true"> 

và thêm dòng sau vào xây dựng gradle bạn file:

compile 'com.wunderlist:sliding-layer:1.2.5' 

Bạn có thể tải về một ứng dụng demo từ here

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