title: Adding cardview to relative layout, relative layout to scrollview
body: <p>I am attempting to programatically, when the user presses a button, add a cardview to a scrollview.</p>
  
  <p>However, I realised that I got this error</p>
  
  <p>java.lang.IllegalStateException: ScrollView can host only one direct child</p>
  
  <p>I read this article <a href="https://stackoverflow.com/questions/3735095/how-can-i-avoid-illegalstateexception-scrollview-can-host-only-one-direct-chil">How can I avoid &quot;IllegalStateException: Scrollview can host only one direct child&quot;?</a> and realised I had to create a  linearlayout. </p>
  
  <p>So, I am now adding my cardview to a linearlayout, then adding that linearlayout to the scrollview. However I am still getting issues.</p>
  
  <pre><code>Error:
  
          java.lang.IllegalStateException: ScrollView can host only one direct child
                  at android.widget.ScrollView.addView(ScrollView.java:233)
                  at com.app.appname.create.CreateCardViewProgrammatical
  
  
      ----------
  
  
      ----------
  
  
      ly(create.java:97)
                  at com.app.supermarketaislefinder.create$1.onClick(create.java:52)
                  at android.view.View.performClick(View.java:4162)
                  at android.view.View$PerformClick.run(View.java:17082)
                  at android.os.Handler.handleCallback(Handler.java:615)
                  at android.os.Handler.dispatchMessage(Handler.java:92)
                  at android.os.Looper.loop(Looper.java:137)
                  at android.app.ActivityThread.main(ActivityThread.java:4867)
                  at java.lang.reflect.Method.invokeNative(Native Method)
                  at java.lang.reflect.Method.invoke(Method.java:511)
                  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1007)
                  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:774)
                  at dalvik.system.NativeStart.main(Native Method)
  
  line 97: `scrollView.addView(linearLayout);`
  line 52                 `CreateCardViewProgrammatically();`
  </code></pre>
  
  <p>create.java</p>
  
  <pre><code>  public class create extends AppCompatActivity {
  
      Button button;
      Context context;
      CardView cardview;
      LayoutParams layoutparams;
      TextView textview;
      LinearLayout linearLayout;
      ScrollView scrollView;
  
      @Override
      protected void onCreate(Bundle savedInstanceState) {
          super.onCreate(savedInstanceState);
          setContentView(R.layout.create);
  
          button = (Button)findViewById(R.id.button);
  
          context = getApplicationContext();
  
          linearLayout = (LinearLayout) findViewById(R.id.linearlayout1);
  
          scrollView = (ScrollView)findViewById(R.id.scrollView1);
  
          //TODO FAB BUTTON
          FloatingActionButton floatingActionButton =
                  (FloatingActionButton) findViewById(R.id.fab);
  
  
          floatingActionButton.setOnClickListener(new View.OnClickListener() {
              @Override
              public void onClick(View view) {
  
                  CreateCardViewProgrammatically();
  
              }
          });
      }
  
      public void CreateCardViewProgrammatically(){
  
          cardview = new CardView(context);
  
          layoutparams = new LayoutParams(
                  LayoutParams.WRAP_CONTENT,
                  LayoutParams.WRAP_CONTENT
          );
  
          cardview.setLayoutParams(layoutparams);
  
          cardview.setRadius(15);
  
          cardview.setPadding(25, 25, 25, 25);
  
          cardview.setCardBackgroundColor(Color.MAGENTA);
  
          cardview.setMaxCardElevation(30);
  
          cardview.setMaxCardElevation(6);
  
          textview = new TextView(context);
  
          textview.setLayoutParams(layoutparams);
  
          textview.setText("CardView Programmatically");
  
          textview.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 25);
  
          textview.setTextColor(Color.WHITE);
  
          textview.setPadding(25,25,25,25);
  
          textview.setGravity(Gravity.CENTER);
  
          cardview.addView(textview);
  
          linearLayout.addView(cardview);
  
          scrollView.addView(linearLayout);
  
      }
  
  }
  </code></pre>
  
  <p>xml</p>
  
  <pre><code>  &lt;?xml version="1.0" encoding="utf-8"?&gt;
      &lt;android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
          xmlns:app="http://schemas.android.com/apk/res-auto"
          xmlns:tools="http://schemas.android.com/tools"
          android:layout_width="match_parent"
          android:layout_height="match_parent"
          android:background="@color/colorBackground"
          android:minHeight="170dp"
          tools:context=".create"
          tools:layout_editor_absoluteY="81dp"
          &gt;
  
  
  
  
          &lt;ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
              android:id="@+id/scrollView1"
              android:layout_width="match_parent"
              android:layout_height="438dp"
              android:fillViewport="true"
              app:layout_constraintEnd_toEndOf="parent"
              app:layout_constraintHorizontal_bias="1.0"
              app:layout_constraintStart_toStartOf="parent"
              tools:layout_editor_absoluteY="0dp"&gt;
  
              &lt;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"
  
                  tools:context="com.android_examples.cardviewprogrammatically_android_examplescom.MainActivity"
                  android:id="@+id/linearlayout1"&gt;
  
  
              &lt;Button
                  android:layout_width="wrap_content"
                  android:layout_height="wrap_content"
                  android:text="Click here to Create CardView programmatically on Button click"
                  android:id="@+id/button"
                  android:layout_centerVertical="true"
                  android:layout_centerHorizontal="true" /&gt;
              &lt;/LinearLayout&gt;
          &lt;/ScrollView&gt;
  
  
  
  
  
  
  
  
          &lt;android.support.design.widget.FloatingActionButton
              android:id="@+id/fab"
              android:layout_width="60dp"
              android:layout_height="70dp"
              android:layout_gravity="bottom|end"
              android:layout_marginBottom="16dp"
              android:layout_marginEnd="16dp"
              android:layout_marginLeft="8dp"
              android:layout_marginRight="16dp"
              android:layout_marginStart="8dp"
              android:src="@android:drawable/ic_input_add"
              app:backgroundTint="@color/colorCreate"
              app:elevation="6dp"
              app:layout_constraintBottom_toBottomOf="parent"
              app:layout_constraintEnd_toEndOf="parent"
              app:layout_constraintHorizontal_bias="1.0"
              app:layout_constraintStart_toStartOf="parent"
              app:pressedTranslationZ="12dp"
              android:tint="@color/colorBackground"/&gt;
  
  
  
          &lt;View
              android:id="@+id/subheading"
              android:layout_width="match_parent"
              android:layout_height="83dp"
              android:layout_marginBottom="8dp"
              android:layout_marginEnd="1dp"
              android:layout_marginLeft="1dp"
              android:layout_marginRight="1dp"
              android:layout_marginStart="1dp"
              android:layout_marginTop="2dp"
              android:background="@color/colorBackground"
              app:layout_constraintBottom_toBottomOf="parent"
              app:layout_constraintEnd_toEndOf="parent"
              app:layout_constraintHorizontal_bias="0.0"
              app:layout_constraintStart_toStartOf="parent"
              app:layout_constraintTop_toTopOf="parent"
              app:layout_constraintVertical_bias="0.0"
              /&gt;
  
          &lt;View
              android:id="@+id/view"
              android:layout_width="320dp"
              android:layout_height="1dp"
              android:layout_marginEnd="8dp"
              android:layout_marginLeft="8dp"
              android:layout_marginRight="8dp"
              android:layout_marginStart="8dp"
              android:layout_marginTop="76dp"
              android:background="@color/colorText"
              app:layout_constraintEnd_toEndOf="parent"
              app:layout_constraintStart_toStartOf="parent"
              app:layout_constraintTop_toTopOf="parent" /&gt;
  
          &lt;View
              android:id="@+id/view2"
              android:layout_width="320dp"
              android:layout_height="1dp"
              android:layout_marginEnd="8dp"
              android:layout_marginLeft="8dp"
              android:layout_marginRight="8dp"
              android:layout_marginStart="8dp"
              android:layout_marginTop="28dp"
              android:background="@color/colorText"
              app:layout_constraintEnd_toEndOf="parent"
              app:layout_constraintStart_toStartOf="parent"
              app:layout_constraintTop_toTopOf="parent" /&gt;
  
          &lt;TextView
              android:id="@+id/textView"
              android:layout_width="wrap_content"
              android:layout_height="wrap_content"
              android:layout_marginEnd="8dp"
              android:layout_marginLeft="8dp"
              android:layout_marginRight="8dp"
              android:layout_marginStart="8dp"
  
              android:layout_marginTop="12dp"
              android:text="@string/done_label"
              android:textColor="@color/colorText"
              android:textSize="20sp"
              app:layout_constraintEnd_toEndOf="parent"
              app:layout_constraintStart_toEndOf="@+id/textView4"
              app:layout_constraintTop_toBottomOf="@+id/view2" /&gt;
  
          &lt;TextView
              android:id="@+id/textView4"
              android:layout_width="wrap_content"
              android:layout_height="wrap_content"
              android:layout_marginBottom="8dp"
              android:layout_marginEnd="128dp"
              android:layout_marginRight="128dp"
              android:layout_marginTop="8dp"
              android:text="@string/aisle_label"
              android:textColor="@color/colorText"
              android:textSize="20sp"
              app:layout_constraintBottom_toTopOf="@+id/view"
              app:layout_constraintEnd_toEndOf="parent"
              app:layout_constraintTop_toBottomOf="@+id/view2"
              app:layout_constraintVertical_bias="1.0" /&gt;
  
          &lt;TextView
              android:id="@+id/textView3"
              android:layout_width="wrap_content"
              android:layout_height="wrap_content"
              android:layout_marginBottom="5dp"
              android:layout_marginEnd="32dp"
              android:layout_marginRight="32dp"
              android:layout_marginTop="5dp"
              android:text="@string/qty_label"
              android:textColor="@color/colorText"
              android:textSize="20sp"
              app:layout_constraintBottom_toTopOf="@+id/view"
              app:layout_constraintEnd_toStartOf="@+id/textView4"
              app:layout_constraintTop_toBottomOf="@+id/view2"
              app:layout_constraintVertical_bias="0.7" /&gt;
  
          &lt;TextView
              android:id="@+id/textView2"
              android:layout_width="wrap_content"
              android:layout_height="wrap_content"
              android:layout_marginBottom="8dp"
              android:layout_marginEnd="8dp"
              android:layout_marginLeft="8dp"
              android:layout_marginRight="8dp"
              android:layout_marginStart="8dp"
              android:layout_marginTop="8dp"
              android:text="@string/item_label"
              android:textColor="@color/colorText"
              android:textSize="20sp"
              app:layout_constraintBottom_toTopOf="@+id/view"
              app:layout_constraintEnd_toStartOf="@+id/textView3"
              app:layout_constraintStart_toStartOf="parent"
              app:layout_constraintTop_toBottomOf="@+id/view2"
              app:layout_constraintVertical_bias="1.0" /&gt;
  
  
      &lt;/android.support.constraint.ConstraintLayout&gt;
  </code></pre>