Android 如何在单击根布局时显示嵌套布局?

Android 如何在单击根布局时显示嵌套布局?,android,android-layout,android-design-library,Android,Android Layout,Android Design Library,我正在开发一个android应用程序,因为我有一个线性布局,其中包含一个根布局(单个)和两个嵌套布局(隐藏,隐藏1)。在“隐藏1”布局中,我有两个文本视图,“隐藏”布局包含三个按钮(是,否,可能),现在我需要的是,当单击根布局时,我需要同时显示两个嵌套布局,当我单击这些按钮中的任何一个(是、否、可能)时,在可见子布局之后,隐藏嵌套布局,然后再次查看根布局。 这是我的布局代码, <ImageButton android

我正在开发一个android应用程序,因为我有一个线性布局,其中包含一个根布局(单个)和两个嵌套布局(隐藏,隐藏1)。在“隐藏1”布局中,我有两个文本视图,“隐藏”布局包含三个按钮(是,否,可能),现在我需要的是,当单击根布局时,我需要同时显示两个嵌套布局,当我单击这些按钮中的任何一个(是、否、可能)时,在可见子布局之后,隐藏嵌套布局,然后再次查看根布局。 这是我的布局代码,

                <ImageButton
                    android:id="@+id/image"
                    android:layout_width="50dp"
                    android:layout_height="50dp"
                    android:src="@drawable/ic_action_event" />

                <LinearLayout
                    android:layout_width="0dp"
                    android:layout_height="50dp"
                    android:layout_weight="1"
                    android:clickable="false"
                    android:focusable="true"
                    android:orientation="vertical">

                    <TextView
                        android:id="@+id/invitation_title"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:paddingLeft="5dp"
                        android:paddingRight="0dp"
                        android:paddingTop="3dp"
                        android:textColor="@color/black"
                        android:textSize="18sp" />

                    <TextView
                        android:id="@+id/invitation_place"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:paddingLeft="5dp"
                        android:paddingRight="0dp"
                        android:textColor="@color/black"
                        android:textSize="15sp" />
                </LinearLayout>

                <LinearLayout
                    android:id="@+id/hidden1"
                    android:layout_width="1000dp"
                    android:layout_height="50dp"
                    android:layout_weight="1"
                    android:clickable="false"
                    android:focusable="true"
                    android:orientation="vertical"
                    android:visibility="visible">

                    <TextView
                        android:id="@+id/title"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_marginLeft="0dp"
                        android:paddingLeft="0dp"
                        android:paddingRight="10dp"
                        android:paddingTop="3dp"
                        android:textColor="@color/black"
                        android:textSize="18sp" />

                    <TextView
                        android:id="@+id/place"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_marginLeft="0dp"
                        android:paddingLeft="0dp"
                        android:paddingRight="10dp"
                        android:textColor="@color/black"
                        android:textSize="15sp" />
                </LinearLayout>

                <LinearLayout
                    android:id="@+id/hidden"
                    android:layout_width="310dp"
                    android:layout_height="60dp"
                    android:layout_marginTop="50dp"
                    android:layout_weight="1"
                    android:clickable="true"
                    android:focusable="true"
                    android:orientation="horizontal"
                    android:paddingTop="1dp"
                    android:visibility="gone"
                    android:weightSum="3">


                    <Button
                        android:id="@+id/yesbutton"
                        android:layout_width="40dp"
                        android:layout_height="40dp"
                        android:layout_marginLeft="7dp"
                        android:layout_weight="1"
                        android:background="@color/blue"
                        android:text="Yes"
                        android:textColor="@color/black"></Button>

                    <Button
                        android:id="@+id/nobutton"
                        android:layout_width="40dp"
                        android:layout_height="40dp"
                        android:layout_marginLeft="30dp"
                        android:layout_weight="1"
                        android:background="@color/blue"
                        android:text="No"
                        android:textColor="@color/black"></Button>

                    <Button
                        android:id="@+id/buttonmaybe"
                        android:layout_width="40dp"
                        android:layout_height="40dp"
                        android:layout_marginLeft="30dp"
                        android:layout_weight="1"
                        android:background="@color/blue"
                        android:text="Maybe"
                        android:textColor="@color/black"></Button>

                </LinearLayout>


            </LinearLayout>
这样试试看

                <ImageButton
                    android:id="@+id/image"
                    android:layout_width="50dp"
                    android:layout_height="50dp"
                    android:src="@drawable/ic_action_event" />

                <LinearLayout
                    android:layout_width="0dp"
                    android:layout_height="50dp"
                    android:layout_weight="1"
                    android:clickable="false"
                    android:focusable="true"
                    android:orientation="vertical">

                    <TextView
                        android:id="@+id/invitation_title"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:paddingLeft="5dp"
                        android:paddingRight="0dp"
                        android:paddingTop="3dp"
                        android:textColor="@color/black"
                        android:textSize="18sp" />

                    <TextView
                        android:id="@+id/invitation_place"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:paddingLeft="5dp"
                        android:paddingRight="0dp"
                        android:textColor="@color/black"
                        android:textSize="15sp" />
                </LinearLayout>

                <LinearLayout
                    android:id="@+id/hidden1"
                    android:layout_width="1000dp"
                    android:layout_height="50dp"
                    android:layout_weight="1"
                    android:clickable="false"
                    android:focusable="true"
                    android:orientation="vertical"
                    android:visibility="visible">

                    <TextView
                        android:id="@+id/title"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_marginLeft="0dp"
                        android:paddingLeft="0dp"
                        android:paddingRight="10dp"
                        android:paddingTop="3dp"
                        android:textColor="@color/black"
                        android:textSize="18sp" />

                    <TextView
                        android:id="@+id/place"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_marginLeft="0dp"
                        android:paddingLeft="0dp"
                        android:paddingRight="10dp"
                        android:textColor="@color/black"
                        android:textSize="15sp" />
                </LinearLayout>

                <LinearLayout
                    android:id="@+id/hidden"
                    android:layout_width="310dp"
                    android:layout_height="60dp"
                    android:layout_marginTop="50dp"
                    android:layout_weight="1"
                    android:clickable="true"
                    android:focusable="true"
                    android:orientation="horizontal"
                    android:paddingTop="1dp"
                    android:visibility="gone"
                    android:weightSum="3">


                    <Button
                        android:id="@+id/yesbutton"
                        android:layout_width="40dp"
                        android:layout_height="40dp"
                        android:layout_marginLeft="7dp"
                        android:layout_weight="1"
                        android:background="@color/blue"
                        android:text="Yes"
                        android:textColor="@color/black"></Button>

                    <Button
                        android:id="@+id/nobutton"
                        android:layout_width="40dp"
                        android:layout_height="40dp"
                        android:layout_marginLeft="30dp"
                        android:layout_weight="1"
                        android:background="@color/blue"
                        android:text="No"
                        android:textColor="@color/black"></Button>

                    <Button
                        android:id="@+id/buttonmaybe"
                        android:layout_width="40dp"
                        android:layout_height="40dp"
                        android:layout_marginLeft="30dp"
                        android:layout_weight="1"
                        android:background="@color/blue"
                        android:text="Maybe"
                        android:textColor="@color/black"></Button>

                </LinearLayout>


            </LinearLayout>
final LinearLayout rootLayout= (LinearLayout)convertView.findViewById(R.id.invitation_single);

rootLayout.setOnClickListener(this);
//然后添加onClickListener方法并执行所需操作

                <ImageButton
                    android:id="@+id/image"
                    android:layout_width="50dp"
                    android:layout_height="50dp"
                    android:src="@drawable/ic_action_event" />

                <LinearLayout
                    android:layout_width="0dp"
                    android:layout_height="50dp"
                    android:layout_weight="1"
                    android:clickable="false"
                    android:focusable="true"
                    android:orientation="vertical">

                    <TextView
                        android:id="@+id/invitation_title"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:paddingLeft="5dp"
                        android:paddingRight="0dp"
                        android:paddingTop="3dp"
                        android:textColor="@color/black"
                        android:textSize="18sp" />

                    <TextView
                        android:id="@+id/invitation_place"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:paddingLeft="5dp"
                        android:paddingRight="0dp"
                        android:textColor="@color/black"
                        android:textSize="15sp" />
                </LinearLayout>

                <LinearLayout
                    android:id="@+id/hidden1"
                    android:layout_width="1000dp"
                    android:layout_height="50dp"
                    android:layout_weight="1"
                    android:clickable="false"
                    android:focusable="true"
                    android:orientation="vertical"
                    android:visibility="visible">

                    <TextView
                        android:id="@+id/title"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_marginLeft="0dp"
                        android:paddingLeft="0dp"
                        android:paddingRight="10dp"
                        android:paddingTop="3dp"
                        android:textColor="@color/black"
                        android:textSize="18sp" />

                    <TextView
                        android:id="@+id/place"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_marginLeft="0dp"
                        android:paddingLeft="0dp"
                        android:paddingRight="10dp"
                        android:textColor="@color/black"
                        android:textSize="15sp" />
                </LinearLayout>

                <LinearLayout
                    android:id="@+id/hidden"
                    android:layout_width="310dp"
                    android:layout_height="60dp"
                    android:layout_marginTop="50dp"
                    android:layout_weight="1"
                    android:clickable="true"
                    android:focusable="true"
                    android:orientation="horizontal"
                    android:paddingTop="1dp"
                    android:visibility="gone"
                    android:weightSum="3">


                    <Button
                        android:id="@+id/yesbutton"
                        android:layout_width="40dp"
                        android:layout_height="40dp"
                        android:layout_marginLeft="7dp"
                        android:layout_weight="1"
                        android:background="@color/blue"
                        android:text="Yes"
                        android:textColor="@color/black"></Button>

                    <Button
                        android:id="@+id/nobutton"
                        android:layout_width="40dp"
                        android:layout_height="40dp"
                        android:layout_marginLeft="30dp"
                        android:layout_weight="1"
                        android:background="@color/blue"
                        android:text="No"
                        android:textColor="@color/black"></Button>

                    <Button
                        android:id="@+id/buttonmaybe"
                        android:layout_width="40dp"
                        android:layout_height="40dp"
                        android:layout_marginLeft="30dp"
                        android:layout_weight="1"
                        android:background="@color/blue"
                        android:text="Maybe"
                        android:textColor="@color/black"></Button>

                </LinearLayout>


            </LinearLayout>
 @Override
public void onClick(View v) {
 //do what you want to do when button is clicked
    switch (v.getId()) {
        case R.id.invitation_single:
           // Do your staff
            break;

    }
}

首先,您需要在两个子布局中设置visiblity gone

                <ImageButton
                    android:id="@+id/image"
                    android:layout_width="50dp"
                    android:layout_height="50dp"
                    android:src="@drawable/ic_action_event" />

                <LinearLayout
                    android:layout_width="0dp"
                    android:layout_height="50dp"
                    android:layout_weight="1"
                    android:clickable="false"
                    android:focusable="true"
                    android:orientation="vertical">

                    <TextView
                        android:id="@+id/invitation_title"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:paddingLeft="5dp"
                        android:paddingRight="0dp"
                        android:paddingTop="3dp"
                        android:textColor="@color/black"
                        android:textSize="18sp" />

                    <TextView
                        android:id="@+id/invitation_place"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:paddingLeft="5dp"
                        android:paddingRight="0dp"
                        android:textColor="@color/black"
                        android:textSize="15sp" />
                </LinearLayout>

                <LinearLayout
                    android:id="@+id/hidden1"
                    android:layout_width="1000dp"
                    android:layout_height="50dp"
                    android:layout_weight="1"
                    android:clickable="false"
                    android:focusable="true"
                    android:orientation="vertical"
                    android:visibility="visible">

                    <TextView
                        android:id="@+id/title"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_marginLeft="0dp"
                        android:paddingLeft="0dp"
                        android:paddingRight="10dp"
                        android:paddingTop="3dp"
                        android:textColor="@color/black"
                        android:textSize="18sp" />

                    <TextView
                        android:id="@+id/place"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_marginLeft="0dp"
                        android:paddingLeft="0dp"
                        android:paddingRight="10dp"
                        android:textColor="@color/black"
                        android:textSize="15sp" />
                </LinearLayout>

                <LinearLayout
                    android:id="@+id/hidden"
                    android:layout_width="310dp"
                    android:layout_height="60dp"
                    android:layout_marginTop="50dp"
                    android:layout_weight="1"
                    android:clickable="true"
                    android:focusable="true"
                    android:orientation="horizontal"
                    android:paddingTop="1dp"
                    android:visibility="gone"
                    android:weightSum="3">


                    <Button
                        android:id="@+id/yesbutton"
                        android:layout_width="40dp"
                        android:layout_height="40dp"
                        android:layout_marginLeft="7dp"
                        android:layout_weight="1"
                        android:background="@color/blue"
                        android:text="Yes"
                        android:textColor="@color/black"></Button>

                    <Button
                        android:id="@+id/nobutton"
                        android:layout_width="40dp"
                        android:layout_height="40dp"
                        android:layout_marginLeft="30dp"
                        android:layout_weight="1"
                        android:background="@color/blue"
                        android:text="No"
                        android:textColor="@color/black"></Button>

                    <Button
                        android:id="@+id/buttonmaybe"
                        android:layout_width="40dp"
                        android:layout_height="40dp"
                        android:layout_marginLeft="30dp"
                        android:layout_weight="1"
                        android:background="@color/blue"
                        android:text="Maybe"
                        android:textColor="@color/black"></Button>

                </LinearLayout>


            </LinearLayout>
  final LinearLayout rootLayout= (LinearLayout)convertView.findViewById(R.id.invitation_single);

    final LinearLayout ChildLayout1= (LinearLayout)convertView.findViewById(R.id.ChildLayout1);

    final LinearLayout ChildLayout2= (LinearLayout)convertView.findViewById(R.id.ChildLayout2);

     rootLayout.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                   //set visibility for  your child layout
                    ChildLayout1.setVisibility(View.Visible);
                    ChildLayout2.setVisibility(View.Visible);
                    }
            });

第三个布局可能处于可见状态,问题是视图在屏幕中未调整。通过将可见性状态设置为VISIBLE而不是xml文件中的GONE,检查第三个布局是否已调整您的屏幕。是否可以验证我尝试过的代码,切换(v.getId()){case R.id.invitation\u single:second.setVisibility(View.VISIBLE);third.setVisibility(View.VISIBLE);break;使用该代码时,我只看到一个textview布局(隐藏)和“hidden1”布局仍然不可见。@selvasimonp yes。明白了。为了避免这种情况,请创建父布局并将这两个布局设置为子布局。我希望这对您有帮助。是的,问题解决了。谢谢您的回答。我使用了父布局概念并删除了hidden1布局,因为父布局已经有TextView,所以我只使用父布局布局和一个嵌套布局。当单击父布局时,该布局也可见。我只是在主布局正下方的嵌套布局上额外可见,因此可以解决问题。