【问题标题】:how to hide sub layout when click button in android?在android中单击按钮时如何隐藏子布局?
【发布时间】:2015-08-04 08:06:08
【问题描述】:

我正在开发一个 android 应用程序,因为我使用的布局包含一个主布局和两个子布局。当我单击主布局“invitation_single”时,两个子布局“hidden”和“hidden1”是可见的(邀请单是隐藏),在“隐藏”布局中,我使用 3 个按钮,“隐藏 1”我使用两个“文本视图”。现在我的问题是,当我在“隐藏”布局中单击任何按钮(是,否,也许)时,“隐藏”布局按钮需要隐藏并仅显示“隐藏1”布局文本框值如何获得该结果。

这是我的布局代码,

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/invitation_single"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:divider="?android:dividerVertical"
    android:dividerPadding="5dp"
    android:showDividers="middle"
    tools:context=".MainActivity">

    <ImageButton
        android:id="@+id/image"
        android:layout_width="@dimen/contact_image"
        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="0dp"
            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/hidden"
        android:layout_width="600dp"
        android:layout_height="60dp"
        android:layout_marginTop="60dp"
        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="100dp"
            android:layout_height="50dp"
            android:layout_marginLeft="0dp"
            android:layout_weight="1"
            android:background="@color/blue"
            android:text="Yes"
            android:textColor="@color/black"></Button>

        <Button
            android:id="@+id/nobutton"
            android:layout_width="100dp"
            android:layout_height="50dp"
            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="100dp"
            android:layout_height="50dp"
            android:layout_marginLeft="30dp"
            android:layout_weight="1"
            android:background="@color/blue"
            android:text="Maybe"
            android:textColor="@color/black"></Button>
    </LinearLayout>

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

        <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>

这是我的java代码,

Button yes = (Button) convertView.findViewById(R.id.yesbutton);
            Button no = (Button) convertView.findViewById(R.id.nobutton);
            Button maybe = (Button) convertView.findViewById(R.id.buttonmaybe);
final LinearLayout first = (LinearLayout) convertView.findViewById(R.id.invitation_single);
            final LinearLayout second = (LinearLayout) convertView.findViewById(R.id.hidden);
            final LinearLayout third = (LinearLayout) convertView.findViewById(R.id.hidden1);
  yes.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    third.setVisibility(second.GONE);


                }
            });

在上面的代码中,我尝试隐藏“隐藏”布局按钮并仅显示“hidden1”文本视图。

【问题讨论】:

  • 隐藏第二个(隐藏)布局应该是second.setVisibility(View.GONE);

标签: android android-layout android-studio android-design-library


【解决方案1】:

致电setVisibility(View.GONE);

如果您使用 View.GONE 值,该元素将从布局中移除,因此它不会占用布局中的任何空间

【讨论】:

    【解决方案2】:

    尝试second.setVisibility(View.GONE); 隐藏“隐藏”布局,尝试third.setVisibility(View.VISIBLE); 在“hidden1”下显示文本视图

    PS:你应该特别注意命名变量,你的没有多大意义,其他开发者很难维护你的代码。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-07-02
      • 1970-01-01
      • 1970-01-01
      • 2013-02-18
      • 1970-01-01
      相关资源
      最近更新 更多