运行下就能看到结果了~关键的remove的时候有给你写注释~
布局的layout文件内容:
----------------------------------------------------------------------------------
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="fill_parent"
android:layout_height="fill_parent" android:id="@+id/linearlayout">
<LinearLayout android:id="@+id/LinearLayout01"
android:layout_width="wrap_content" android:layout_height="wrap_content">
<Button android:layout_height="wrap_content" android:id="@+id/add"
android:text="Add" android:layout_width="100px"></Button>
<Button android:layout_height="wrap_content"
android:layout_width="100px" android:text="Remove" android:id="@+id/remove"></Button>
</LinearLayout>
<TextView android:id="@+id/TextView01" android:text="This is textView."
android:layout_width="fill_parent" android:gravity="center"
android:layout_height="50px"></TextView>
</LinearLayout>
----------------------------------------------------------------------------------
对应Activity的内容:
----------------------------------------------------------------------------------
package com.foxconn.dialog
import android.app.Activity
import android.os.Bundle
import android.view.View
import android.view.View.OnClickListener
import android.view.ViewGroup.LayoutParams
import android.widget.Button
import android.widget.LinearLayout
public class DialogTest extends Activity implements OnClickListener {
private Button add_btn, remove_btn
private LinearLayout linearLayout
private int index = 0
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState)
setContentView(R.layout.main)
findViews()
register()
}
private void register() {
add_btn.setOnClickListener(this)
remove_btn.setOnClickListener(this)
}
private void findViews() {
add_btn = (Button) findViewById(R.id.add)
remove_btn = (Button) findViewById(R.id.remove)
linearLayout = (LinearLayout) findViewById(R.id.linearlayout)
}
protected View createView() {
Button btn = new Button(this)
btn.setId(index++)
btn.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT))
btn.setText("aaaaaa" + index)
return btn
}
private void removeView() {
//获取linearlayout子view的个数
int count = linearLayout.getChildCount()
//研究整个LAYOUT布局,第0位的是含add和remove两个button的layout
//第count-1个是那个文字被置中的textview
//因此,在remove的时候,只能 *** 作的是0<location<count-1这个范围的
//在执行每次remove时,我们从count-2的位置即textview上面的那个控件开始删除~
if (count - 2 >0) {
//count-2>0用来判断当前linearlayout子view数多于2个,即还有我们点add增加的button
linearLayout.removeViewAt(count - 2)
}
}
public void onClick(View v) {
switch (v.getId()) {
case R.id.add:
linearLayout.addView(createView(), 1)
break
case R.id.remove:
removeView()
break
default:
break
}
}
}
----------------------------------------------------------------------------------
首先你得定义一个 LayoutParams:RelativeLayout.LayoutParams s = new RelativeLayout.LayoutParams(LayoutParams.MATCH_PARENT,LayoutParams.MATCH_PARENT)
s.addRule(RelativeLayout.CENTER_IN_PARENT, -1)
//添加位置信息 -1表示相对于父控件的位置 ,如果要相对某个平级控件则参数是该控件的ID
s.setMargins(10, 10, 10, 10)//设置左,上,右,下,的距离
上面的定义好了之后可以用了:
imgApple2.setLayoutParams(s)
insertLayout.addView(imgApple2,100,100)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)