我需要实际使用scrollview,而在scrollview中包含linearlayout,它会显示错误,如E/AndroidRuntime(22309): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.sample.program/com.sample.program.details}: java.lang.IllegalStateException: The specified child already has a parent. You must call removeView() on the child's parent first.
查看我的编码:
我想在scrollview中添加的linearlayout
mScrollTolinear = (LinearLayout) findViewById(R.id.toscroll);
我的ScrollView
ScrollView mScroll = new ScrollView(Appointmentdetails.this);
mScroll.addView(mScrollTolinear);
删除视图
mScrollTolinear.removeAllViews();
mScrollTolinear.removeView(mScrollTolinear);
尝试删除视图中的某些内容,但没有运气,尝试使用谷歌,但dint得到解决方案,任何建议或帮助被高度接受。
我的XML
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@color/whitebackground"
android:orientation="vertical"
>
<!-- <ScrollView -->
<!-- android:id="@+id/favscroll" -->
<!-- android:layout_width="fill_parent" -->
<!-- android:layout_height="wrap_content" -->
<!-- android:visibility="invisible" > -->
<LinearLayout
android:id="@+id/toscroll"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical" >
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="@drawable/topheaderbg" >
<ImageView
"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_centerInParent="true"
android:contentDescription="@string/app_name"
android:paddingLeft="10dip"
android:src="@drawable/listbutton" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:textColor="@color/White"
android:textSize="16sp"
android:textStyle="bold" />
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_centerInParent="true"
android:contentDescription="@string/app_name"
android:paddingRight="10dip"
android:src="@drawable/notificationicon" />
</LinearLayout>
</LinearLayout>
由于
答案 0 :(得分:1)
问题是您正在尝试添加一个从XML文件中膨胀的视图,因此它已经有一个父级(因为它已经位于视图层次结构中)。而不是以下
mScrollTolinear = (LinearLayout) findViewById(R.id.toscroll);
你必须实现这样的事情:
mScrollTolinear = getLayoutInflater().inflate(R.layout.your_layout_file, null);
还要记住,ScrollView只能有一个子视图,否则可以获得异常
<强> UPD 强> 与您的评论相对应的更新
因此,如果您想将ScrollView添加到LinearLayout,您必须调用:
ScrollView scroll = new ScrollView(yourContext); //you may also want to specify LayoutParams for it
mScrollTolinear.addView(scroll);
我希望我能正确理解你的评论