2012-02-21 6 views
16

Tôi đang tạo một ứng dụng nhỏ cho máy tính bảng, giống như một dấu hiệu hiển thị.Android Chỉnh sửa căn chỉnh văn bản

Tôi có một vài yếu tố văn bản được căn giữa trong dấu hiển thị. Khi tôi chạm vào nó, nó được chuyển đổi thành editText. Tôi muốn chỉnh sửa văn bản theo cách mà văn bản trong đó được căn giữa và nội dung được bao bọc. Nhưng khi tôi nhập một cái gì đó, editText mở rộng cả hai cách, giữ cho văn bản được căn chỉnh ở giữa. Tôi muốn làm điều tương tự với các yếu tố văn bản phù hợp đúng (chỉ khác biệt là văn bản chỉnh sửa sẽ mở rộng chỉ về phía bên trái).

Khi tôi đang cố gắng để làm điều này ngay bây giờ nó mở rộng về phía left.This là mã của tôi cho đẻ ra những chỉnh sửa văn bản tố

tempView=new EditText(this); 
((EditText) tempView).setTextSize(shrinkedFontSize); 
((EditText) tempView).setTypeface(tf); 
((EditText) tempView).setText(tempInput.getText());  
((EditText) tempView).setGravity(Gravity.CENTER); 
layout.addView(tempView, tempParams); 

Tôi đang thiết lập chiều rộng của cách bố trí như wrap_content trong cách bố trí thông số. Tôi cũng đã chỉ định x và y trong thông số bố cục của mình cho góc trên cùng bên trái của văn bản chỉnh sửa.

Có cách nào để đạt được điều này không?

Trả lời

35

này nên giải quyết vấn đề của bạn:

EditText t = (EditText) findViewById(R.id.text); 
t.setGravity(Gravity.CENTER); 

... trong XML:

<EditText 
    android:id="@+id/text" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:inputType="text" /> 

Nó làm cho EditText inputField bước vào văn bản làm trung tâm theo chiều ngang.

Bạn có thể thay đổi layout_width từ fill_parent thành 150 dp hoặc bất kỳ kích thước nào khác, nhưng không phải wrap_content. Văn bản sẽ được căn giữa theo chiều ngang.

Đặt t.setGravity(Gravity.RIGHT); hoặc LEFT, làm cho văn bản được nhập căn trái hoặc phải.

10

Đây là giải pháp đơn giản được kiểm tra. Chỉ cần thêm android:gravity="center" vào tệp XML bố cục để căn chỉnh văn bản thành tâm của EditText. Không cần phải thay đổi mã Java.

<EditText 
    android:id="@+id/LastName" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:background="@drawable/back" 
    android:inputType="numberDecimal" 
    android:gravity="center" />