2013-07-05 2 views
1

Я пытаюсь добавить CENTER_VERTICAL в EditText:Добавить тяжести EditText программно

((EditText)childView).setGravity(((EditText)childView).getGravity() | Gravity.CENTER_VERTICAL); 

мне нужно ADD (но НЕ ИЗМЕНИТСЯ !!!) любой другой текущий вес View.

Пример: EditText уже имеет гравитацию LEFT. Я пробую

((EditText)childView).setGravity(Gravity.CENTER_VERTICAL); 

, но новая гравитация убивает ЛЕВАЯ тяжесть.

Что такое лучший способ ДОБАВИТЬ новую гравитацию?

+0

вы не можете добавить гравитацию, вместо этого вы можете установить только один – R9J

+0

какой макет вы используете для EditText? – R4chi7

+0

Я использую parent TableLayout. Я пробую код (см. Ниже), но нет результата –

ответ

0

Вы можете попробовать силы тяжести, установив его в Params

LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT); 
params.gravity = Gravity.CENTER_VERTICAL; 

((EditText)childView).setLayoutParams(params); 
+0

Я пробую это. 'TableRow.LayoutParams layoutParams = new TableRow.LayoutParams (TableRow.LayoutParams.WRAP_CONTENT, TableRow.LayoutParams.WRAP_CONTENT); layoutParams.gravity = layoutParams.gravity | Gravity.CENTER_VERTICAL; ((EditText) childView) .setLayoutParams (layoutParams); ». Но этот код уничтожает предыдущую серьезность взгляда. –

5

Try:

((EditText)childView).setGravity(Gravity.LEFT | Gravity.CENTER_VERTICAL); 

Вы должны знать начальную гравитацию набора.

0

При создании программы EditText программно вы должны сначала установить setKeyListener (TextKeyListener.getInstance());

В противном случае ваш взгляд будет выравнен с Gravity.TOP.

Я не знаю реальной причины, но прежде чем указывать любой другой параметр в EditText, вы должны установить setKeyListener (TextKeyListener.getInstance());

Исправление: он работает только в том случае, если вы создаете свой пользовательский виджет, расширяя EditText и определяя свой виджет в XML. Проверено только на Android 5.0.1

Смежные вопросы