我有3个布局,我需要点击按钮访问某些布局和广告从中删除控件任何想法如何实现,这是我使用的代码
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical" >
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="0.20"
android:orientation="horizontal" >
<Button
android:id="@+id/backbutton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Back" />
<Button
android:id="@+id/backbutton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="next" />
</LinearLayout>
<!-- the two columns part -->
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight="0.80"
android:orientation="horizontal" >
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight="0.80" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="First Name" />
</LinearLayout>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight="0.20" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="second Name" />
</LinearLayout>
</LinearLayout>
</LinearLayout>
答案 0 :(得分:20)
在Android上从父级删除视图:
View myView = findViewById(R.id.my_view);
ViewGroup parent = (ViewGroup) myView.getParent();
parent.removeView(myView);
Android删除所有子视图:
LinearLayout formLayout = (LinearLayout)findViewById(R.id.formLayout);
formLayout.removeAllViews();
在Android上向父级添加视图:
Button myButton = new Button(getApplicationContext());
myButton.setLayoutParameters(new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.FILL_PARENT,
LinearLayout.LayoutParams.FILL_PARENT));
myLayout.addView(myButton);
你可以使用:
LinearLayout.LayoutParams.FILL_PARENT
或
LinearLayout.LayoutParams.WRAP_CONTENT
答案 1 :(得分:2)
之后添加andoird:id="@+id/linerlayout_1"
您可以使用findviewbyid()
方法在代码内轻松访问此视图。
对于examlpe:将其放在按钮的onclicklistener方法中。
LinearLayout ll = (LinearLayout) findViewById(R.id.linerlayout);
ll.setVisibility(View.GONE); // this row will hide the entire linerlayout
ll.addView(someView); //this row will add the specified View f.e.: TextView
ll.removeView(otherView); // this row will remove the view
您也可以通过xml属性android:visibility
管理视图可见性。
答案 2 :(得分:1)
查看View类的setVisibility方法。它允许您非常简单地在UI中显示或消失视图。
在按钮的点击监听器中,只需添加view.setVisibility(View.GONE)
即可使任何布局或小部件消失。您可以通过调用view.setVisibility(View.VISIBLE)
答案 3 :(得分:0)
动态添加或删除视图的示例:
TextView tv = new TextView(this);
tv.setWidth(LayoutParams.WRAP_CONTENT);
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT);
params.gravity = Gravity.RIGHT;
tv.setLayoutParams(params);
tv.setTextAppearance(this, R.style.darkTextNormal);
tv.setBackgroundResource(R.color.lightBlue);
tv.setTextSize(16);
yourLinearLayout.addView(tv);
//或
yourLinearLayout.removeView(tv);