2012-10-13 27 views
11

Tôi biết nhiều câu hỏi khác nhau đã được hỏi về điều này trước đây nhưng tôi không thể tìm thấy câu trả lời cho vấn đề của mình. Tôi đang làm việc trên một ứng dụng Android và tôi muốn một trường EditText để mở rộng khi người dùng nhập vào nó. Tôi muốn nó có kích thước tối thiểu trước tiên và mở rộng nếu người dùng nhập nhiều hơn mức tối thiểu cho phép. Đây là mã của tôi cho đến thời điểm này:Làm cho EditText phát triển khi nó được điền

<ScrollView 
    android:layout_height="fill_parent" 
    android:layout_width="fill_parent" 
    android:fillViewport="true" > 

    <linearLayout 
     android:layout_height="match_parent" 
     android:layout_width="wrap_content" 
     android:orientation="vertical" 
     android:padding="5dp" > 

     <linearLayout> 
      ...content... 
     </linearLayout> 

     <linearLayout> 
      ...content... 
     </linearLayout> 

     <EditText 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:inputType="textMultiLine" 
     android:lines="7" 
     android:gravity="top" /> 

    </linearLayout> 
</ScrollView> 

Trường EditText nằm trong tuyến tính gốcLayout, bên trong ScrollView gốc. Nó có vẻ tốt trên màn hình nhưng khi tôi đi qua dòng thứ 7 trong lĩnh vực chỉnh sửa văn bản tôi phải sử dụng một trackball để trở lại lên thông qua các lĩnh vực văn bản. Cuộn màn hình sẽ cuộn toàn bộ màn hình. Bất cứ ai có thể cho tôi một số lời khuyên? Tôi đã thử thực hiện các đề xuất khác nhau cho các câu hỏi tương tự nhưng không có câu trả lời nào cho tôi câu trả lời đúng. Cảm ơn

+1

Tôi không rõ ràng về câu hỏi của bạn, nếu bạn muốn tiếp tục xóa: 'android: lines =" 7 "'. – Sam

+0

@Sam Sau đó, làm cách nào để giữ hộp editText ở kích thước cụ thể? Tôi không muốn nó là một hộp nhỏ tôi muốn nó là một hộp lớn để bắt đầu với – adohertyd

+0

Bạn đã thử 'android: minHeight' và' android: minWidth'? – Sam

Trả lời

12

Như @tozka đã nêu trong nhận xét, trong tệp bố cục, hãy chỉ định: android:minLines="" thay vì android:lines="".

Trong Java: editText.setMinLines(int) thay vì editText.setLines(int).

Trong C# (Mono dành cho Android) editText.SetMinLines(int) thay vì editText.SetLines(int).

Từ Android docs:

public void setMinLines (int minlines)

Làm cho TextView cao nhiều dòng ít nhất này. Đặt giá trị này sẽ ghi đè bất kỳ cài đặt độ cao (tối thiểu) nào khác.

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