2010-01-09 36 views
29

Tôi đã gặp một số vấn đề với ScrollViews. Gần đây, tôi đã cố gắng tạo một LinearView có nội dung vượt quá kích thước màn hình để tạo bố cục mới với phần tử cha ScrollView và đặt chiều rộng và chiều cao của nó thành giá trị tùy chỉnh (bố cục phải xuất hiện dưới dạng hộp thoại - không làm đầy toàn bộ màn hình).Android: ScrollView Issue

Khi phần tử được chọn đường viền màu đỏ xuất hiện để ôm lấy hình chữ nhật của bố cục ScrollView được xác định trướcWidth và LayoutHeight là OK. Sau đó, tôi đặt bên trong LinearView và thiết lập các giá trị LayoutWidth và LayoutHeight thành fill_parent.

Sau đó, khi tôi bắt đầu thêm các phần tử vào LinearLayout đường viền (viền đỏ) bọc các phần tử được chèn vào, không phải toàn bộ ScrollView của cha mẹ.

Vì vậy, khi nội dung của LinearLayout (con của ScrollView) vượt quá kích thước của phụ huynh ScrollView cuộn không xuất hiện và các phần tử dưới cùng chỉ đơn giản là vô hình.

Dù sao .. trong trường hợp đó, nội dung XML quá rộng để đăng câu hỏi ở đây và giờ tôi đang gặp vấn đề tương tự với ví dụ đơn giản hơn.

Phần sau của bố cục được dự định là EditText có thể cuộn (trong trường hợp đầu vào của người dùng vượt quá kích thước chính của tiện ích). Tôi muốn thiết lập chiều cao EditText thành 120px, vì vậy tôi đặt chiều cao ScrollView cha thành 120px và EditText con thành fill_parent. Một lần nữa trong trường hợp này EditText không điền vào khu vực scrollview toàn nhưng một dòng duy nhất:

<ScrollView android:layout_height="120px" android:layout_width="fill_parent"> 
<EditText android:id="@+id/txtContent" android:layout_height="fill_parent" android:layout_width="fill_parent" android:text="TestContent"> 
</EditText> 
</ScrollView> 

Có ai biết làm thế nào để định hình lại nội dung trên để các EditText lấp đầy sự kiểm soát phụ huynh và trong trường hợp đầu vào của người dùng vượt quá kiểm soát kích thước cuộn xuất hiện?

Cảm ơn bạn!

Edit:

Dưới đây là ảnh chụp màn hình của cách bố trí

loại bỏ ImageShack chết liên kết
loại bỏ ImageShack chết liên kết

Trả lời

95

EditText của bạn nên có một chiều cao của wrap_content. fill_parent không có ý nghĩa trong một ScrollView. Nếu bạn muốn EditText điền vào số ScrollView khi nội dung của nó nhỏ hơn ScrollView, hãy sử dụng android:fillViewport="true" trên số ScrollView.

+0

Nhưng với 'ScrollView' có 'android: fillViewport = "true"' tạo ra một rắc rối lạ đối với tôi. Trong đoạn có một scrollview và bên trong nó là một bảng bố trí với các hàng bảng được tạo động vào thời gian chạy. Sau đó, nếu biểu ngữ quảng cáo được tải và tôi thực hiện được hiển thị do sự thay đổi kích thước phân đoạn các hàng trong bảng con của tôi bị biến mất. Điều này không xảy ra nếu tôi đặt fillViewPort thành false! –

9

Có, như Romain đã nói, scrollview cần kết hợp sau.

  1. cho scrollview android:fillViewport="true"
  2. cho con của scrollview android:layout_height="wrap_content"
+1

Có. Có những kỷ niệm mà tôi có hành vi kỳ lạ khi tôi đặt nó thành fill_parent. –

+0

Tôi đã làm như vậy, nhưng sau đó tôi không thể cuộn? bạn có thể giúp tôi để cố gắng hiểu những gì có thể là vấn đề? –

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