Как выровнять вертикальный вид текста и редактировать текст в Linearlayout в Android

В настоящее время я пытаюсь закодировать текстовое представление и текст редактирования для выравнивания по вертикали, используя Linearlayout в Android Studio. Я попытался установить гравитацию макета и другой элемент, но я не могу добиться того, чего хочу, в данный момент это мой код.

LinearLayout params3 = new LinearLayout(this);
        params3.setOrientation(LinearLayout.VERTICAL);
        params3.setGravity(Gravity.CENTER_VERTICAL);

        LinearLayout.LayoutParams params2 = new LinearLayout.LayoutParams(
                LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT);
        params2.weight = 35;
        params3.setLayoutParams(params2);
        params2.height = convertDiptoPix(80,context);
        //params2.leftMargin = convertDiptoPix(5,context);


        TextView textView1 = new TextView(this);
        textView1.setId(View.generateViewId());
        textView1.setGravity(Gravity.TOP | Gravity.CENTER_HORIZONTAL);
        textView1.setPadding(0,convertDiptoPix(1,context),0,convertDiptoPix(3,context));
        textView1.setText("Receipt");
        textView1.setTextColor(Color.parseColor("#000000"));
        //textView1.setLayoutParams(params2);
        textView1.setTextSize(convertDiptoPix(13,context));

        EditTextIME editTextIME = new EditTextIME(this);
        editTextIME.setId(View.generateViewId());
        //editTextIME.setWidth(LinearLayout.LayoutParams.MATCH_PARENT);
        //editTextIME.setMinimumHeight(LinearLayout.LayoutParams.WRAP_CONTENT);
        editTextIME.setGravity(Gravity.BOTTOM | Gravity.CENTER_VERTICAL);
        //editTextIME.setLayoutParams(params2);
        editTextIME.setFocusableInTouchMode(true);
        editTextIME.setKeyListener(DigitsKeyListener.getInstance("abcdefghijklmnopqrstuvwxyzöäüßñéúíóáèùòìàâãåæçëêìíîïôõûýABCDEFGHIJKLMNOPQRSTUVWXYZÖÄÜÕÔÒÔÓÙÚÛÝÑÇÈÉÊËÌÍÎÏÆÅÄÃÂÁÀØ01234567890()&*$%#!+-:;,._?¿/><[]{}|\\^ "));
        editTextIME.setHint("Notes");
        editTextIME.setInputType(InputType.TYPE_CLASS_TEXT);
        editTextIME.setHorizontallyScrolling(true);
        editTextIME.setTextSize(convertDiptoPix(13,context));

кто-нибудь пробовал закодировать как вертикальное выравнивание в андроид студии? Можете ли вы поделиться своей идеей?

1 ответ

Вы можете попробовать это,

        LinearLayout parent = new LinearLayout(context);

        parent.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.MATCH_PARENT));
        parent.setOrientation(LinearLayout.VERTICAL);

        LinearLayout.LayoutParams params2 = new LinearLayout.LayoutParams(
                LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT);

        TextView textView1 = new TextView(this);
        textView1.setLayoutParams(params2);
        textView1.setId(View.generateViewId());
        textView1.setGravity(Gravity.TOP | Gravity.CENTER_HORIZONTAL);
        textView1.setText("Receipt");
        textView1.setTextColor(Color.parseColor("#000000"));

        EditText editTextIME = new EditText(this);
        editTextIME.setId(View.generateViewId());
        editTextIME.setGravity(Gravity.BOTTOM | Gravity.CENTER_VERTICAL);
        editTextIME.setLayoutParams(params2);
        editTextIME.setFocusableInTouchMode(true);
        editTextIME.setKeyListener(DigitsKeyListener.getInstance("abcdefghijklmnopqrstuvwxyzöäüßñéúíóáèùòìàâãåæçëêìíîïôõûýABCDEFGHIJKLMNOPQRSTUVWXYZÖÄÜÕÔÒÔÓÙÚÛÝÑÇÈÉÊËÌÍÎÏÆÅÄÃÂÁÀØ01234567890()&*$%#!+-:;,._?¿/><[]{}|\\^ "));
        editTextIME.setHint("Notes");
        editTextIME.setInputType(InputType.TYPE_CLASS_TEXT);
        editTextIME.setHorizontallyScrolling(true);
//        editTextIME.setTextSize(convertDiptoPix(13,context));

        parent.addView(textView1);
        parent.addView(editTextIME);
Другие вопросы по тегам