Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/375.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何设置视图';用Java而不是XML编程实现重力和布局重力?_Java_Android_Android Studio_Android Layout - Fatal编程技术网

如何设置视图';用Java而不是XML编程实现重力和布局重力?

如何设置视图';用Java而不是XML编程实现重力和布局重力?,java,android,android-studio,android-layout,Java,Android,Android Studio,Android Layout,对于我的活动,我们的任务是完全以编程方式创建视图(不允许使用XML) 我创建了我想要的XML布局。 但是我在正确设置contentEditText和Gravity时遇到了问题,就像我在XML文件中所做的那样 这就是我的观点 public class NoteGridLayout extends GridLayout { public NoteGridLayout(final Context context, EditText titleEditText, Spinner spinner,

对于我的活动,我们的任务是完全以编程方式创建视图(不允许使用XML)

我创建了我想要的XML布局。

但是我在正确设置contentEditText和Gravity时遇到了问题,就像我在XML文件中所做的那样

这就是我的观点

public class NoteGridLayout extends GridLayout {

  public NoteGridLayout(final Context context, EditText titleEditText, Spinner spinner, EditText contentEditText, Button backButton) {
    super(context);

    setColumnCount(2);

    GridLayout.Spec colSpec, rowSpec;
    colSpec = GridLayout.spec(0, 1, 1);
    rowSpec = GridLayout.spec(0, 0, 0);
    GridLayout.LayoutParams titleParams = new GridLayout.LayoutParams(rowSpec, colSpec);

    colSpec = GridLayout.spec(1,1,1);
    rowSpec = GridLayout.spec(0,0,0);
    GridLayout.LayoutParams spinnerParams = new GridLayout.LayoutParams(rowSpec, colSpec);

    colSpec = GridLayout.spec(0,2,1);
    rowSpec = GridLayout.spec(1,1,1);
    GridLayout.LayoutParams contentParams = new GridLayout.LayoutParams(rowSpec, colSpec);

    colSpec = GridLayout.spec(0,2,1);
    rowSpec = GridLayout.spec(2,1,0);
    GridLayout.LayoutParams buttonParams = new GridLayout.LayoutParams(rowSpec, colSpec);

    titleParams.width = 0;
    titleParams.height = LayoutParams.WRAP_CONTENT;
    spinnerParams.width = 0;
    spinnerParams.height = LayoutParams.WRAP_CONTENT;
    contentParams.width = 0;
    contentParams.height = 0;
    buttonParams.width = LayoutParams.MATCH_PARENT;
    buttonParams.height = LayoutParams.WRAP_CONTENT;
    contentParams.setGravity(Gravity.TOP);

    titleEditText.setLayoutParams(titleParams);
    spinner.setLayoutParams(spinnerParams);
    contentEditText.setLayoutParams(contentParams);
    backButton.setLayoutParams(buttonParams);


    addView(titleEditText);
    addView(spinner);
    addView(contentEditText);
    addView(backButton);
  }
}
我面临的两个主要问题是: 1.titleEditText看起来并不是跨越整个列,而是微调器占据了整个两列。 2.无法设置contentEditText重力,将文本放置在框的顶部


要解决这两个问题,我需要做什么?

对于布局,下面是一段代码片段

LinearLayout.LayoutParams params = new 
LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.MATCH_PARENT);
params.weight = 1.0f;
params.gravity = Gravity.CENTER;
yourView.setLayoutParams(params);
在重力作用下,使用以下线条

yourLayout.setGravity(Gravity.CENTER)