Как задать ширину макета, высоту для редактирования текста программно?

#android

#Android

Вопрос:

У меня проблема, я создал время выполнения EditText в своем коде, теперь я хочу указать размер (высоту и ширину) для этого Edittext, как я могу сделать то же самое, как в XML-файле, который мы даем Android:layout_heigtht и layout_width. Как это сделать программно?

Спасибо

Ответ №1:

     addQuestion = new Button(myContext);
    addQuestion.setId(134);
    addQuestion.setTag("addQuestion");
    addQuestion.setBackgroundDrawable(getResources().getDrawable(R.drawable.add_button));
    addQuestion.setGravity(Gravity.LEFT);

    LinearLayout.LayoutParams addQuestion_Params = new LinearLayout.LayoutParams(24, 24);  
    addQuestion_Params.leftMargin=20;
    addQuestion.setOnClickListener(myScreenClickListener);        
    questionAndAddButtonContainer.addView(addQuestion, addQuestion_Params);
  

выше приведен пример динамической настройки высоты и ширины кнопки.

 LinearLayout.LayoutParams addQuestion_Params = new LinearLayout.LayoutParams(24, 24);  
  

здесь 24 — это общая ширина и высота кнопки.

Комментарии:

1. Я хочу еще одну вещь: можем ли мы указать этот размер (24) как dip (пиксель, не зависящий от плотности), потому что во время выполнения он выглядит не так, как требуется. Спасибо

2. да, вы можете. просто присвоите значение переменной 1 и используйте переменную at вместо 24.

Ответ №2:

Используйте LayoutParams, чтобы задать макет в коде. Я не пробовал это, но видел что-то похожее на это в соответствующем сообщении.

Также это предоставлено в качестве ответа кем-то другим, так что, похоже, это работает.

Ответ №3:

Используйте метод setWidth и setHeight. В дизайне кода нет свойства layout. Подробнее о TextView и EditText смотрите в документации: TextView
EditText

И если вам нужно установить размер в «dip», при кодировании нет dip, вам нужен DisplayMetric, затем рассчитайте размер самостоятельно.

Ответ №4:

Вы должны просто иметь возможность задать их с помощью setWidth (int width) и setHeight (int height). Что-то вроде этого:

 EditText edit = new EditText(this);
edit.setWidth(100);
edit.setHeight(50);