如何在Android studio中将GONE可见性更改为VISIBLE可见性

时间:2016-03-10 05:01:37

标签: java android xml

在我的应用程序中,我将Frame Layout可见性设置为GONE,我想在单击复选框时显示Frame布局。是否有可能将其设置为VISIBLE?

xml:这是整个xml代码

<?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"
style="@style/Container">

<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"
android:orientation="vertical">

<ImageView
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:src="@drawable/red_logo"/>

<TextView
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="Marchant Offer"
    android:textSize="30px"
    android:textColor="#ff0000"/>

<LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal">

    <Spinner
        android:id="@+id/spinnerCountry"
        android:layout_weight="1"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content">
    </Spinner>

    <TextView
        android:layout_weight="1"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="Country" />

</LinearLayout>

<LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal">

    <Spinner
        android:id="@+id/spinnerState"
        android:layout_weight="1"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content">
    </Spinner>

    <TextView
        android:layout_weight="1"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="State/Province" />

</LinearLayout>

<EditText
    android:id="@+id/editTextCity"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:hint="City"/>

<EditText
    android:id="@+id/editTextAirport"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:hint="Neareast Airport"/>

<LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal">

    <Spinner
        android:id="@+id/spinnerCategory"
        android:layout_weight="1"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content">
    </Spinner>

    <TextView
        android:layout_weight="1"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="Category" />


</LinearLayout>

<EditText
    android:id="@+id/editSTextOfferTitle"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:hint="Offer Title"/>

<EditText
    android:id="@+id/editTextOfferSummary"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:hint="Offer Summary"/>


<EditText
    android:id="@+id/editTextOfferDescription"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:hint="Offer Description"/>

<LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal">

    <TextView
        android:layout_weight="1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Offer Highlights"/>

    <Button
        android:layout_weight="1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Add"/>
</LinearLayout>

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Inclusion"/>

<LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal">

    <TextView
        android:layout_weight="1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Others Inclusion"/>

    <Button
        android:layout_weight="1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Add"/>
</LinearLayout>

<LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal">

    <TextView
        android:layout_weight="1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Do You Offer Inclusive Hotel/Port Pick-Up and Drop-off"/>

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="horizontal">
    <CheckBox
        android:id="@+id/checkBoxYes"
        android:layout_weight="1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />

        <TextView
            android:layout_weight="1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Yes"/>
    </LinearLayout>

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="horizontal">
        <CheckBox
            android:id="@+id/checkBoxNo"
            android:layout_weight="1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" />


        <TextView
            android:layout_weight="1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="No"/>
    </LinearLayout>
</LinearLayout>

 <FrameLayout
    android:id="@+id/frameLayout"
    android:layout_width="fill_parent"
    android:layout_height="match_parent"
    android:visibility="gone">

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical">
    <TextView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="@string/ifyes"/>

    <EditText
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:hint="Your picking up coverage area"/>

        <EditText
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:hint="Time to picking up the Guess"/>

        <EditText
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:hint="Additional Info for Guess"/>
    </LinearLayout>
  </FrameLayout>
 </LinearLayout>
</ScrollView>

java代码:

checkBoxYes = (CheckBox)findViewById(R.id.checkBoxYes);
checkBoxYes.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
    @Override
    public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
        if(isChecked){
            frameLayout.setVisibility(View.VISIBLE);
        }
    }
});

3 个答案:

答案 0 :(得分:0)

尝试这种方式它会帮助你

private int checkedBoxs = 0;
private final CheckBox.OnCheckedChangeListener listener = 
    new OnCheckedChangeListener() {
        public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
            if (isChecked) {
                status.set(position, true);
                checkedBoxs++;
                if (layout.getVisibility() == View.GONE)
                    layout.setVisibility(View.VISIBLE);
            } else {
                status.set(position, false);
                checkedBoxs--;
                if (checkedBoxs == 0)
                    layout.setVisibility(View.GONE);
            }
        }
    };

答案 1 :(得分:0)

是..

ch = (CheckBox)findViewById(R.id.checkbox);              
ch.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {

    @Override
    public void onCheckedChanged(CompoundButton buttonView,boolean isChecked) {
        if(isChecked){
            framelayout.setVisibility(View.VISIBLE);//framelayout is your layout,initially set GONE.
        }
    }
  }); 

答案 2 :(得分:0)

也许是因为你的框架布局中的视图可见性也消失了。

尝试以下代码

    checkBoxYes = (CheckBox)findViewById(R.id.checkBoxYes);
    ViewGroup frameLayout = (ViewGroup)findViewById(R.id.frameLayout)
    checkBoxYes.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
    if(isChecked){
        frameLayout.setVisibility(View.VISIBLE);
         int count = frameLayout.getChildCount();
    for (int i = 0; i < count; i++) {
        View view = frameLayout.getChildAt(i);
        view.setVisibility(View.VISIBLE);
    }
    }
}

});

确保将frameLayout强制转换为ViewGroup。