setVisibility使多个视图消失

时间:2015-01-18 18:36:26

标签: android user-interface

我正在尝试创建两个视图,并且能够切换其中一个视图的可见性。问题是,当我尝试使用集合可见性使其中一个视图不可见时,它会影响它们。有谁会知道为什么会这样,我怎么能更好地处理这种情况呢?

public AlarmDropDownForm(Context context) {
    super(context);
    mInflater = LayoutInflater.from(context);
    init();


}


View alarmBody;
View alarmHeader;

private void init() {
    this.setOrientation(LinearLayout.VERTICAL);
    alarmHeadereader = mInflater.inflate(R.layout.alarm_form_header, this);
    alarmBody= mInflater.inflate(R.layout.alarm_form_layout, this);
    alarmBody.setVisibility(View.GONE);
}

文件的XML如下

警报标题:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="match_parent"
    android:layout_height="match_parent">
    <LinearLayout
        android:id="@+id/help_title_gest"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:onClick="toggle_contents"
        android:orientation="horizontal">

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/alarm_set_button"
            android:clickable="true"
            android:text="Set Alarm"
            android:textSize="20dp" />

        <TextView
            android:id="@+id/BACammt"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:clickable="true"
            android:gravity="end"
            android:onClick="toggle_contents"
            android:textSize="20dp" />
    </LinearLayout>
</LinearLayout>
报警机构:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">

    <RelativeLayout
        android:id="@+id/hiddenView"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_below="@+id/help_title_gest">


        <LinearLayout
            android:id="@+id/bacRow"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal"

            >

            <TextView
                android:id="@+id/hidden_text"
                android:layout_width="wrap_content"
                android:layout_height="fill_parent"
                android:gravity="center_vertical"
                android:text="BAC:"
                android:textSize="20dp" />

            <Spinner
                android:id="@+id/BACspinner1"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_alignParentEnd="true"
                android:layout_alignParentRight="true"
                android:layout_weight="1"
                android:gravity="center_vertical" />


        </LinearLayout>

        <LinearLayout
            android:id="@+id/sendTextRow"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_below="@+id/bacRow"
            android:orientation="horizontal">

            <TextView
                android:id="@+id/send_text_text"
                android:layout_width="wrap_content"
                android:layout_height="fill_parent"
                android:gravity="center_vertical"
                android:text="send text:"
                android:textSize="20dp" />

            <Switch
                android:id="@+id/switch1"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1" />


        </LinearLayout>

        <LinearLayout
            android:id="@+id/alertContactsRow"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_below="@+id/sendTextRow"
            android:orientation="horizontal">

            <TextView
                android:id="@+id/alert_contacts_text"
                android:layout_width="wrap_content"
                android:layout_height="fill_parent"
                android:gravity="center_vertical"
                android:text="alert contacts:"
                android:textSize="20dp" />

            <Switch
                android:id="@+id/switch2"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1" />


        </LinearLayout>

</RelativeLayout>


</RelativeLayout>

1 个答案:

答案 0 :(得分:2)

使用alarmBody.setVisibility(View.INVISIBLE); GONE属性不仅会隐藏视图,还会隐藏容器

修改

合并两个观点

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="match_parent"
    android:layout_height="match_parent">
    <LinearLayout
        android:id="@+id/help_title_gest"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:onClick="toggle_contents"
        android:orientation="horizontal">

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/alarm_set_button"
            android:clickable="true"
            android:text="Set Alarm"
            android:textSize="20dp" />

        <TextView
            android:id="@+id/BACammt"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:clickable="true"
            android:gravity="end"
            android:onClick="toggle_contents"
            android:textSize="20dp" />
    </LinearLayout>

    <RelativeLayout
    android:id="@+id/hiddenView"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_below="@+id/help_title_gest">


    <LinearLayout
        android:id="@+id/bacRow"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal"

        >

        <TextView
            android:id="@+id/hidden_text"
            android:layout_width="wrap_content"
            android:layout_height="fill_parent"
            android:gravity="center_vertical"
            android:text="BAC:"
            android:textSize="20dp" />

        <Spinner
            android:id="@+id/BACspinner1"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_alignParentEnd="true"
            android:layout_alignParentRight="true"
            android:layout_weight="1"
            android:gravity="center_vertical" />


    </LinearLayout>

    <LinearLayout
        android:id="@+id/sendTextRow"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_below="@+id/bacRow"
        android:orientation="horizontal">

        <TextView
            android:id="@+id/send_text_text"
            android:layout_width="wrap_content"
            android:layout_height="fill_parent"
            android:gravity="center_vertical"
            android:text="send text:"
            android:textSize="20dp" />

        <Switch
            android:id="@+id/switch1"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1" />


    </LinearLayout>

    <LinearLayout
        android:id="@+id/alertContactsRow"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_below="@+id/sendTextRow"
        android:orientation="horizontal">

        <TextView
            android:id="@+id/alert_contacts_text"
            android:layout_width="wrap_content"
            android:layout_height="fill_parent"
            android:gravity="center_vertical"
            android:text="alert contacts:"
            android:textSize="20dp" />

        <Switch
            android:id="@+id/switch2"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1" />


    </LinearLayout>

    

然后在代码中找到您的内容并隐藏它

private void init() {
    this.setOrientation(LinearLayout.VERTICAL);
    alarmHeadereader = mInflater.inflate(R.layout.alarm_form_header, this);
    alarmBody= alarmHeadereader.findViewById(R.id.hiddenView);
    alarmBody.setVisibility(View.GONE);
}