Member 13097869 Ответов: 0

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


Я пытаюсь создать ряд редактируемых текстов программно, не используя XML, но при этом столкнулся с некоторыми проблемами. Вот фрагмент кода:
lang= "java" >
private void createEditText(int l, int topMargin){
    ViewGroup.MarginLayoutParams vlp = (ViewGroup.MarginLayoutParams) editText.getLayoutParams();
    LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(vlp.width, vlp.height);
    layoutParams.setMargins((vlp.leftMargin + l) - vlp.width - vlp.height - 25, topMargin, vlp.rightMargin, vlp.bottomMargin);
    final EditText newEditText = new EditText(this);
    newEditText.setBackgroundResource(R.drawable.rounded_edittext);
    newEditText.setLayoutParams(layoutParams);

    linearLayout.addView(newEditText);
}

private void numberOfEditTexts(){
    String[] words = Answers.answers[getCurrentLevel()].split(" ");
    int l = 0, topMargin = 450;

    for(int i = 0; i < words.length - 1; i++){
        createEditText(l, topMargin);
        l += editText.getLayoutParams().width + 5;
        if(i == 0) topMargin -= 560;
    }
}


Первая функция создает редактируемый текст, и я посылаю ей 2 параметра, из которых topMargin-это переменная, определяющая координаты высоты редактируемого текста. Таким образом, проблема заключается в том, что этот текст редактирования будет отображаться по-разному на разных устройствах из-за их размеров экрана. Как я могу это исправить? Как я могу избежать установки позиции вручную?

Заранее спасибо.

Что я уже пробовал:

Я пытался получить значение высоты экрана и использовать его процент, например, 5% или 10% от него, но, к сожалению, это не сработало.

0 Ответов