2009-09-09 47 views
44

Tôi đang sử dụng TableLayout. Tôi cần phải có cả cuộn ngang và dọc cho bố cục này. Theo mặc định, tôi có thể cuộn dọc trong chế độ xem nhưng cuộn ngang không hoạt động.Làm cách nào để bố cục của tôi cuộn theo chiều ngang và chiều dọc?

Tôi đang sử dụng Android SDK 1.5 r3. Tôi đã thử android:scrollbars="horizontal".

Tôi đã đọc trên một số diễn đàn trong bản cập nhật cupcake, có thể cuộn ngang.

Làm cách nào để bố cục của tôi cuộn theo cả hai hướng?

Trả lời

112

Tôi đã có thể tìm một cách đơn giản để đạt được cả hai hành vi cuộn.

Đây là xml cho nó:

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" android:layout_height="fill_parent" 
    android:scrollbars="vertical"> 

    <HorizontalScrollView 
     android:layout_width="320px" android:layout_height="fill_parent"> 

     <TableLayout xmlns:android="http://schemas.android.com/apk/res/android" 
      android:id="@+id/linlay" android:layout_width="320px" 
      android:layout_height="fill_parent" android:stretchColumns="1" 
      android:background="#000000"/> 

    </HorizontalScrollView> 

</ScrollView> 
+0

Cuộn ngang sẽ hoạt động tốt ... nhưng không có thanh cuộn ngang có thể nhìn thấy .. làm cách nào chúng tôi có thể làm điều đó ..? Cảnh báo – Amit

+4

: đây có thể là hành vi không tốt. Xem câu hỏi/câu trả lời này: http://stackoverflow.com/questions/4490821/scrollview-inside-scrollview#4492050 –

+4

@PedroLoureiro thực sự, câu hỏi trong liên kết bạn đã đăng đề cập đến việc kết hợp 'ScrollView' với' ListView'. Điều này là bởi vì 'ListView' có một tấn tối ưu trong nó mà không chơi độc đáo với một' ScorollView' xung quanh. Câu trả lời được đăng ở đây không sử dụng 'ListView', vì vậy đối số được liên kết không liên quan. –

0

Trong bài này Scrollview vertical and horizontal in android họ nói về một giải pháp khả thi, trích dẫn:

Matt Clark đã xây dựng một giao diện tùy chỉnh dựa trên mã nguồn Android, và nó dường như hoạt động hoàn hảo: http://blog.gorges.us/2010/06/android-two-dimensional-scrollview

Hãy coi chừng rằng lớp trong trang đó có lỗi tính toán chiều rộng ngang của chế độ xem. Một sửa chữa bởi Manuel Hilty là trong các ý kiến:

Giải pháp: Thay thế báo cáo kết quả trên dòng 808 bởi những điều sau đây:

final int childWidthMeasureSpec = MeasureSpec.makeMeasureSpec(lp.leftMargin + lp.rightMargin, MeasureSpec.UNSPECIFIED); 
0

Sử dụng này:

android:scrollbarAlwaysDrawHorizontalTrack="true" 

Ví dụ:

<Gallery android:id="@+id/gallery" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:scrollbarAlwaysDrawHorizontalTrack="true" /> 
1

quá muộn nhưng tôi hy vọng vấn đề của bạn sẽ được giải quyết nhanh chóng với mã này. không có gì để làm nhiều hơn chỉ cần đặt mã của bạn vào bên dưới scrollview.

<HorizontalScrollView 
      android:id="@+id/scrollView" 
      android:layout_width="wrap_content" 
      android:layout_height="match_parent"> 

      <ScrollView 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content"> 
       //xml code 
      </ScrollView> 
    </HorizontalScrollView> 
Các vấn đề liên quan