Выравнивание EditText - PullRequest
       26

Выравнивание EditText

0 голосов
/ 27 октября 2011

Я строю простой текстовый редактор.Я хотел выровнять текст по левому краю, по центру и справа.

Я сделал следующее, но не изменил выравнивание текста

Как мне это сделать?

EditText txt = (EditText) findViewById(R.id.txt_gcFrontInsideTextData);
    if (command == 0 )
    {
        LinearLayout.LayoutParams p = new LinearLayout.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT, Gravity.TOP | Gravity.LEFT);
        txt.setLayoutParams(p);
    }
    else if (command == 1)
    {
        LinearLayout.LayoutParams p = new LinearLayout.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT, Gravity.TOP | Gravity.CENTER_HORIZONTAL);
        txt.setLayoutParams(p);
    }
    else if (command == 2)
    {
        LinearLayout.LayoutParams p = new LinearLayout.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT, Gravity.TOP | Gravity.RIGHT);
        txt.setLayoutParams(p);
    }

Ответы [ 2 ]

3 голосов
/ 27 октября 2011

Прежде всего, конструктор LinearLayout.LayoutParams не принимает гравитацию в качестве параметра - третий параметр - это вес макета.Поле gravity из LinearLayout.LayoutParams на самом деле является layout_gravity, который определяет aligment макета внутри его родителя.

Вам нужно, например,

if (command == 0 )
{
    txt.setGravity(Gravity.TOP | Gravity.LEFT);
} 

.

0 голосов
/ 27 октября 2011

Все, что вам нужно сделать, это использовать метод setGravity() непосредственно на EditText, например:

EditText txt = (EditText) findViewById(R.id.txt_gcFrontInsideTextData);
switch(command)
{
  case 0:
    txt.setGravity(Gravity.TOP | Gravity.LEFT);
    break;
  case 1:
    txt.setGravity(Gravity.TOP | Gravity.CENTER_HORIZONTAL);
    break;
  case 2:
    txt.setGravity(Gravity.TOP | Gravity.RIGHT);
    break;
}
...