public void onCheckboxClicked(View view) {
CheckBox checkBox = (CheckBox) view;
RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
params.addRule(RelativeLayout.BELOW, checkBox.getId());
LinearLayout li = (LinearLayout) findViewById(R.id.checkbox_layout);
EditText ed = new EditText(RegisterActivity.this);
ed.setLayoutParams(params);
li.addView(ed);
}
这是我在活动文件中的代码
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
>
<LinearLayout
android:id="@+id/checkbox_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<CheckBox
android:id="@+id/hsc"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:onClick="onCheckboxClicked"
android:text="HSC"
android:textSize="15sp" />
<CheckBox
android:id="@+id/ielts"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="15dp"
android:onClick="onCheckboxClicked"
android:text="IELTS"
android:textSize="15sp" />
<CheckBox
android:id="@+id/toefl"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="15dp"
android:onClick="onCheckboxClicked"
android:text="TOEFL"
android:textSize="15sp" />
</LinearLayout>
这是我的xml布局文件
我只想动态地在“已选中”复选框下方添加Edittext,但是当我运行此代码时,Edittext将添加到Linearlayout的底部...
如何在复选框下方添加?
答案 0 :(得分:0)
这是因为您尝试设置RelativeLayout.LayoutParams
并将View
添加到LinearLayout
。 LinearLayout忽略RelativeLayout
。
如果您想添加View after复选框您需要知道复选框的位置,然后使用this方法放置新的View。