2012-07-03 44 views

Trả lời

65

Để căn giữa văn bản gợi ý hoạt động với EditText, bạn phải đảm bảo android: ellipsize = "start" được xác định. Tôi không biết tại sao điều này làm cho nó hoạt động, nhưng nó có.

Ví dụ kéo từ mã cá nhân:

<EditText 
    android:id="@+id/player2Name" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_centerInParent="true" 
    android:ellipsize="start" 
    android:gravity="center_horizontal" 
    android:hint="@string/player2_name" 
    android:inputType="textCapWords|textPersonName" 
    android:singleLine="true" /> 
+0

Cảm ơn bạn đã đăng bài và chào mừng bạn đến với StackOverflow! Có, dấu ba chấm = "bắt đầu" không ảnh hưởng đến điều này. Không chắc chắn lý do tại sao. Không có nó, gợi ý không hiển thị cho tôi. –

+4

Tôi nghĩ rằng tôi quá muộn ở đây, nhưng hôm nay tôi đã nhìn thấy câu trả lời này và reliazed rằng ở đây là không cần android: ellipsize = "start" để tạo ra một trung tâm gợi ý, AFAIK. Xem câu trả lời của tôi. Có thể nó cũng hữu ích. –

+1

Như đã nêu trong các câu trả lời khác, đó là android: gravity = "center" (hoặc một biến thể tương tự) tập trung văn bản, chứ không phải hình elip. – hBrent

25

Sử dụng xml này thuộc tính:

android: trọng lực = "center"

+1

có điều này là cần thiết để căn giữa văn bản. theo chiều dọc cũng như chiều ngang. –

+0

nó hoạt động với edittext bên trong Constraintslayout –

28

Trên thực tế android:gravity="center_horizontal" hiệu lực thi hành "trung tâm" thực hiện. Bạn có thể sử dụng

android: trọng lực = "bắt đầu"

để đưa văn bản gợi ý ở phần đầu của quan điểm EditText và vân vân.

+2

Cảm ơn. Tôi đã thử với 'android: ellipsize =" start "' và không có thay đổi. Thêm 'android: gravity =" center_horizontal "' đã thực hiện thủ thuật. Cảm ơn một lần nữa. –

+0

phù hợp với tôi nhờ – HCarrasko

8

sử dụng thuộc tính

android:gravity="center" 
7

tôi đã sử dụng mã này trong mọi hoàn cảnh, và nó hoạt động một cách hoàn hảo mà không sử dụng android: ellipsize = "bắt đầu" để tạo ra một gợi ý ở trung tâm.

<EditText 
    android:id="@+id/player2Name" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:gravity="center_horizontal" 
    android:hint="robi" 
    android:inputType="text" /> 
3

Thật không may, câu trả lời không giúp tôi căn chỉnh gợi ý, được viết bằng ngôn ngữ LTR, trong khi định hướng bố cục là RTL. Tôi cần bố trí như vậy trong một loại ứng dụng dịch thuật để làm cho các biểu tượng lớp phủ không can thiệp vào văn bản RTL. Nhưng thủ thuật này không làm việc với những gợi ý trong khi không có văn bản nào được nêu ra (các biểu tượng xuất hiện trên các gợi ý) và tôi đã đến giải pháp java sau để bố trí vấn đề:

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 
. . . 
     if (isRightToLeft()){ 
      EditText guess = (EditText) rootView.findViewById(android.R.id.text1); 
      CharSequence hint = "\u200F" + guess.getHint(); 
      guess.setHint(hint); 
     } 
. . . 
} 

Bí quyết là ở bên phải-to- dấu trái để thêm một chuỗi từ trái sang phải. Và nó có vẻ hoạt động, nhưng có ai biết một giải pháp thanh lịch hơn không?

2

Tôi nghĩ câu trả lời nên là:

android:textAlignment="center" 
+0

Tôi đồng ý, đây là câu trả lời đúng để căn giữa văn bản chứ không phải gợi ý. – 0101100101

+0

lực hấp dẫn đôi khi thất bại. điều này hoạt động, cảm ơn – j2emanue

0

này đã làm việc cho tôi:

<android.support.design.widget.TextInputLayout 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:id="@+id/nombreslayoutinput"> 
    <EditText 
     android:id="@+id/nombreslayout" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:hint="@string/nombres" 
     android:layout_centerInParent="true" 
     android:gravity="center|center_vertical" 
     android:ellipsize="start" 
     android:inputType="textCapWords|textPersonName" 

     /> 
</android.support.design.widget.TextInputLayout> 
0

sử dụng android:textAlignment="center" trong EditText, nó làm việc cho tôi

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