2009-09-01 30 views
15

Làm thế nào để làm cho EditText android nhỏ hơn chiều cao mặc định?Làm thế nào để làm cho EditText android nhỏ hơn chiều cao mặc định?

Nếu tôi thay đổi chiều cao, tôi không thể nhìn thấy văn bản của mình, nhưng nó có thêm trống ở phía dưới.

+1

những 'Câu hỏi này khó có thể giúp bất kỳ visitors' tương lai, yeah đúng! Có hơn 40 nghìn lượt truy cập. –

+0

Lý do đóng chắc chắn là không đúng, nhưng tôi vẫn muốn xem một ví dụ về hành vi mong muốn là gì và hành vi hiện tại là gì, một ảnh chụp màn hình có thể. Có lẽ trong những năm qua, các tiêu chuẩn cho việc đặt câu hỏi đã được cải thiện. – Trilarion

Trả lời

24

EditText có bộ đệm mặc định.

Hãy thử điều này,

<EditText 
    android:text="Any Text" 
    android:layout_width="fill_parent" 
    android:layout_height="16dp" 
    android:padding="2dp" 
    android:background="#FFF" 
    android:textSize="10dp" 
/> 
+1

điều này thực sự làm cho văn bản nhỏ hơn, nhưng khi tôi nhấp vào nó, sẽ có một đường màu cam ở giữa. – Jacky

+0

@ Jacky: Điều đó có thể được xử lý bằng cách thêm nền. Hãy thử với thuộc tính - android: background = "# FFF" Tốt nhất - chỉ định một xml dựa trên drawable cho nền, có thể xử lý tất cả các trạng thái (như tiêu điểm) – bhatt4982

+1

Điều này có vẻ khá bị tấn công. Đối với một, bạn nên thiết lập textSize bằng cách sử dụng đo lường sp, không phải dp. –

3

Đây có phải là tùy chọn để đặt chiều cao một cách rõ ràng không?

Nếu có, hãy sử dụng một cái gì đó giống như

<EditText 
    android:id="@+id/smallEditText" 
    android:layout_width="wrap_content" 
    android:layout_height="10dip"/> 

Bạn có thể giảm kích thước font chữ, bằng cách sử dụng android:textSize trong XML. Bạn cũng có thể làm cho điều khiển của bạn có thể cuộn được.

Chỉnh sửa: Chỉ cần nhìn thấy ảnh chụp màn hình của bạn, bố cục mà bạn đã đặt EditText là gì? Nó có thể được thiết lập quy tắc bố trí không rõ ràng cho kiểm soát của bạn.

+0

Tôi sử dụng LinerLayout, thực sự làm cho phông chữ của tôi nhỏ hơn sẽ không giải quyết được vấn đề – Jacky

7

Tôi đã không thực sự hài lòng với bất kỳ câu trả lời nào đó mặc dù khi kết hợp chúng chủ yếu chứa tất cả các thành phần cho giải pháp đúng. Nhưng trước tiên hãy xác định vấn đề là gì. Vấn đề là như bhatt4982 đã nêu padding và ông đã cung cấp một giải pháp cho điều đó. Đặt padding cho những gì bạn muốn. Nếu bạn cũng muốn có một phông chữ nhỏ hơn làm điều gì đó như learn_andrd gợi ý hoặc một cái gì đó như thế này

style="@android:style/TextAppearance.Small.Inverse" 

Bây giờ, chiều rộng của phần tử EditText là đúng và cỡ chữ phù hợp của TextView thường xuyên của bạn. Tuy nhiên, màu sắc ngược lại vì màu xám nhạt không trông quá tốt trên nền trắng. Và điều đó đưa chúng ta đến vấn đề cuối cùng của chúng ta, nền tảng. Bạn cần thiết lập một nền tảng khác vì nền EditText mặc định có chiều cao tối thiểu. Chiều cao đó là chiều cao của chiều cao hiện tại của phần tử. AFAIK Android không hỗ trợ chia tỷ lệ hình nền. Bạn nên xác định nền của riêng bạn Drawable cho EditText cho phép chiều cao nhỏ hơn so với cái mặc định cho phép. Nếu không, nó sẽ không có tác dụng gì cho dù bạn có cố gắng thiết lập chiều cao hoặc đệm hoặc diễu hành.

P.S. Bạn có thể băn khoăn tại sao chúng lại khiến bạn khó tạo ra EditView nhỏ hơn ... có lẽ nó có liên quan đến thực tế là, ngay cả khi nó là, rất khó sử dụng ngón tay của bạn để di chuyển con trỏ đến một vị trí trong EditText (nói cho sửa chữa một lỗi đánh máy mà không xóa tất cả mọi thứ) phần tử. Nó sẽ trở thành không thể nếu bạn làm cho văn bản thậm chí còn nhỏ hơn. Vì vậy, bạn có lẽ nên xem xét lại là nó, những gì bạn đang cố gắng để đạt được, thực sự một cái gì đó giá trị theo đuổi, trừ khi bạn chỉ cố gắng để cắt giảm trên padding.

0

thay đổi XML chỉnh sửa văn bản hai tài sản

android:layout_height="15dp" 
android:textSize="12sp" 
Các vấn đề liên quan