如何在android中的Linearlayout中对齐垂直textview和editText

时间:2017-07-08 05:30:50

标签: java android android-layout runtime

目前,我正在尝试编写textview和edittext,以便在android studio中使用Linearlayout进行垂直对齐。我尝试设置布局重力和其他元素,但我无法达到我想要的目前这是我的代码。

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));

有没有人试图像android studio中的垂直对齐一样编码?你能分享一下你的想法吗?

1 个答案:

答案 0 :(得分:0)

你可以试试这个,

        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);