无法在android中以编程方式在scrollview中添加linearlayout

时间:2014-05-14 07:31:21

标签: android view add

我需要实际使用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>

由于

1 个答案:

答案 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);

我希望我能正确理解你的评论