我的应用有edittext和一个按钮。每次我单击一个按钮时,都会向活动添加一个新的textview。以下是代码:
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,它都会自动放置在活动的左上角,但我希望它在其他地方。我已经(手动)为此活动添加了一个新的textview,我希望每个新的textview都自动放置在已存在的textview下。
答案 0 :(得分:3)
我不确定你是否真的需要在那里使用RelativeLayout,我强烈建议使用LinearLayout而不是将方向设置为vertical
,这会使所有视图相互添加。
如果你真的需要一个RelativeLayout,当然也有一种方法。但是您必须指定正确的LayoutParams。每个默认视图组都有自己的LayoutParams类。
使用RelativeLayout.LayoutParams - 尤其是方法addRule(RelativeLayout.BELOW, idOfOtherView)
- 您可以将视图告知另一个视图。
答案 1 :(得分:1)
在XML上使用垂直方向的LinearLayout,而不是RelativeLayout。