2010-08-24 23 views
17

Tôi đã thêm ViewSwitcher vào LinearLayout, có hai chế độ xem có chiều cao khác nhau, Tuy nhiên có vẻ như ViewSwitcher chiếm không gian lớn nhất của chế độ xem, thay vì sắp xếp chính nó. Đây có phải là như thế nào?ViewSwitcher và chiều cao bố trí trong Android

Việc cần làm trong trường hợp khác là gì? Tôi đã cố gắng tạo ra một accordion, nơi bảng tiêu đề, khi được nhấp vào tăng kích thước

Trả lời

43

Hành vi mặc định của ViewSwitcher, được kế thừa bởi ViewAnimator, là xem xét tất cả các chế độ xem con trên bố cục, điều này sẽ dẫn đến ViewSwitcher chiếm không gian của đứa trẻ lớn nhất.

Để thay đổi điều này, tất cả những gì bạn cần làm là đặt cờ MeasureAllChildren thành sai. Điều này sẽ làm cho việc bố trí vượt qua bỏ qua chế độ xem con hiện đang bị ẩn. Đặt cờ này, ví dụ: trong phương thức onCreate của hoạt động này, ví dụ:

ViewSwitcher switcher = (ViewSwitcher)findViewById(R.id.ViewSwitcher); 
    switcher.setMeasureAllChildren(false); 

dụ XML:

<ViewSwitcher xmlns:android="http://schemas.android.com/apk/res/android" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:id="@+id/viewSwitcher" 
     android:measureAllChildren="false"> 
</ViewSwitcher> 
+0

người đàn ông của bạn, nhờ – j2emanue

+0

Làm thế nào để làm cho nó sinh động, và có một người biết lắng nghe suy của nó, trong khi nó chuyển sang chế độ xem khác, mặc dù? –

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