1

我的应用程序有 edittext 和一个按钮。每次我单击一个按钮时,都会将一个新的文本视图添加到活动中。下面是代码:

public void novVnos (View v){
    EditText eText = (EditText) findViewById(R.id.editText1);
    RelativeLayout mLayout = (RelativeLayout) findViewById(R.id.relativeLayout);

    mLayout.addView(createNewTextView(eText.getText().toString()));
}

private TextView createNewTextView (String text){
    final LayoutParams lparams = new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
    final TextView textView = new TextView(this);
    int counter = 0;

    counter += 1;
    textView.setLayoutParams(lparams);
    textView.setText(counter + ". " + text);
    return textView;
}

现在的问题是,每当我使用按钮添加新的 textview 时,它都会自动放置在活动的左上角,但我想要它在其他地方。我已经(手动)向这个活动添加了一个新的文本视图,我希望每个新的文本视图都自动放置在这个已经存在的文本视图下。

4

2 回答 2

3

我不确定你是否真的需要在那里有一个 RelativeLayout,我强烈建议使用 LinearLayout 并将方向设置为vertical,这将使所有视图都添加到彼此下方。

如果你真的需要一个RelativeLayout,当然也有办法。但是您必须指定正确的 LayoutParams。每个默认视图组都有自己的 LayoutParams 类。使用RelativeLayout.LayoutParams——尤其是方法addRule(RelativeLayout.BELOW, idOfOtherView)——你可以告诉一个视图在另一个视图之下。

于 2013-06-30T23:10:38.733 回答
1

在您的 XML 上使用具有垂直方向的 LinearLayout,而不使用 RelativeLayout。

于 2013-06-30T23:10:55.023 回答