如何在Android编程中单击按钮上的同一个Activity中插入一个整个LinearLayout?

时间:2016-08-23 10:41:51

标签: android android-studio android-linearlayout

这是我的xml代码,我想插入整个LinearLayout id(l1),因为我点击了用id(b1)定义的Mainbutton。需要注意的是,linearLayout l1还包含一个textview和一个Button。 我知道如何在按钮单击上插入视图但我无法找到如何在按钮上插入整个布局单击。 希望不需要.java文件。请定义您自己的onClick方法。

<?xml version="1.0" encoding="utf-8"?>

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:scrollbars="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="com.example.akash.courtcounter.MainActivity"
    android:background="#e5e2e2">

    <Button
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:text="Main Button"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true"
        android:textSize="15dp"
        android:id="@+id/b1"
        android:layout_marginBottom="10dp" />

    <LinearLayout
        android:layout_width="match_parent"
        android:background="#c5ffffff"
        android:id="@+id/l1"
        android:layout_height="70dp"
        android:layout_below="@+id/b1"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true">

        <TextView
            android:text="TextView Here"
            android:textColor="#000000"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/t1"
            android:paddingLeft="10dp"
            android:textStyle="normal"
            android:textSize="20dp"
            android:layout_weight="1" />

        <Button
            android:layout_width="40dp"
            android:layout_height="wrap_content"
            android:text="+"
            android:id="@+id/b2"
            android:textColor="#747070"
            android:textSize="35dp"
            android:background="#d3d6d8"
            android:onClick="increase"
            android:layout_marginRight="10dp"
            android:layout_marginTop="10dp" />
    </LinearLayout>
</RelativeLayout>
</ScrollView>   

2 个答案:

答案 0 :(得分:0)

默认情况下,使.Lml文件中的LinearLayout不可见

<LinearLayout
       android:layout_width="match_parent"
       android:layout_height="wrap_content"
       android:background="#c5ffffff"
       android:id="@+id/l1"
       android:visibility="gone"                         //it hides the entire linear layout
       android:orientation="vertical">

     <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content">

     //Add your views here
      <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="1"
                    android:textColor="@color/white" />




    </LinearLayout>

  <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content">

     //Add your views here
      <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="2"
                    android:textColor="@color/white" />




    </LinearLayout>

   <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content">

     //Add your views here
      <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="3"
                    android:textColor="@color/white" />




    </LinearLayout>

然后在.java文件中

 public class MainActivity extends AppCompatActivity {

LinearLayout l1;

@Override
 protected void onCreate(Bundle savedInstanceState) {

 l1 = (LinearLayout) this.findViewById(R.id.l1);

 l1.setVisibility(View.GONE);

 button.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {


             l1.setVisibility(View.VISIBLE);          //on button click Linear Layout will be visible


         }
      });
}

}

答案 1 :(得分:0)

您应该动态地为新布局充气并将其添加到父线性布局

LinearLayout myLayout = (LinearLayout)findViewById(R.id.linearLayout2); View newLayout = getLayoutInflater().inflate(R.layout.new_layout, null, false); myLayout.addView(newLayout);

new_layout是您想要动态添加的布局。