Android setVisibility无法正常工作

Android setVisibility无法正常工作,android,android-view,visibility,Android,Android View,Visibility,我正在隐藏一个布局,比如说layoutA,并使用以下代码显示另一个布局,比如说layoutB: layoutA.setVisibility(View.GONE); layoutB.setVisibility(View.VISIBLE); layoutB有一个由计时器控制的图像进度条。问题是,有时隐藏的布局是正确隐藏的。有时,被layoutB覆盖的layoutA部分即使被隐藏,也会一直闪烁。它仍然可见。有时,它仍然可见 这是我的代码: layoutA.setVisibility(View.GON

我正在隐藏一个布局,比如说
layoutA
,并使用以下代码显示另一个布局,比如说
layoutB

layoutA.setVisibility(View.GONE);
layoutB.setVisibility(View.VISIBLE);
layoutB有一个由计时器控制的图像进度条。问题是,有时隐藏的布局是正确隐藏的。有时,被
layoutB
覆盖的
layoutA
部分即使被隐藏,也会一直闪烁。它仍然可见。有时,它仍然可见

这是我的代码:

layoutA.setVisibility(View.GONE);
layoutB.setVisibility(View.VISIBLE);

tmrOTP = new CountDownTimer(60000, 500) {

    public void onTick(long millisUntilFinished) {
        final int progressToSet = (int) (((60000 - millisUntilFinished)*100)/60000);

        if(!numVerified) {
            runOnUiThread(new Runnable() {
                @Override
                public void run() {
                    updateProgressBar(progressToSet);
                }
            });
        }
        else {
            layoutA.setVisibility(View.VISIBLE);
            layoutB.setVisibility(View.GONE);
            tmrOTP.cancel();
        }
    }

    public void onFinish() {
        layoutA.setVisibility(View.VISIBLE);
        layoutB.setVisibility(View.GONE);
        tmrOTP = null;
    }

}.start();
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/layoutA"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="319dp"
android:layout_height="287dp"
......
......>


<EditText
        android:id="@+id/txtMobile"
        android:layout_width="300dp"
        android:layout_height="55dp"
        android:ems="10"
        android:inputType="number"
        android:background="@drawable/edittext_style_g"
        app:layout_constraintTop_toTopOf="parent"
        android:layout_marginRight="8dp"
        app:layout_constraintRight_toRightOf="parent"
        android:layout_marginLeft="8dp"
        app:layout_constraintLeft_toLeftOf="parent"
        android:layout_marginStart="8dp"
        android:layout_marginEnd="8dp"
        app:layout_constraintHorizontal_bias="0.0" />



     <Button
         android:id="@+id/btnSendOTP"
         android:layout_width="300dp"
         android:layout_height="55dp"
         android:textSize="23sp"
         android:text="Send OTP"
         android:textColor="#ffffff"
         android:background="@drawable/button_style_g"
         android:layout_marginRight="8dp"
         app:layout_constraintRight_toRightOf="parent"
         android:layout_marginLeft="8dp"
         app:layout_constraintLeft_toLeftOf="parent"
         android:layout_marginTop="35dp"
         app:layout_constraintTop_toBottomOf="@+id/txtMobile"
         android:layout_marginStart="8dp"
         android:layout_marginEnd="8dp" />

</android.support.constraint.ConstraintLayout>



<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/layoutB"
    android:visibility="gone"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="319dp"
    android:layout_height="287dp"
    ......
    ......>


<ImageView
        android:id="@+id/imgProgress"
        android:layout_width="120dp"
        android:layout_height="120dp"
        android:layout_marginTop="33dp"
        android:background="@null"
        ....
        .... />

</android.support.constraint.ConstraintLayout>
这是我的xml:

layoutA.setVisibility(View.GONE);
layoutB.setVisibility(View.VISIBLE);

tmrOTP = new CountDownTimer(60000, 500) {

    public void onTick(long millisUntilFinished) {
        final int progressToSet = (int) (((60000 - millisUntilFinished)*100)/60000);

        if(!numVerified) {
            runOnUiThread(new Runnable() {
                @Override
                public void run() {
                    updateProgressBar(progressToSet);
                }
            });
        }
        else {
            layoutA.setVisibility(View.VISIBLE);
            layoutB.setVisibility(View.GONE);
            tmrOTP.cancel();
        }
    }

    public void onFinish() {
        layoutA.setVisibility(View.VISIBLE);
        layoutB.setVisibility(View.GONE);
        tmrOTP = null;
    }

}.start();
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/layoutA"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="319dp"
android:layout_height="287dp"
......
......>


<EditText
        android:id="@+id/txtMobile"
        android:layout_width="300dp"
        android:layout_height="55dp"
        android:ems="10"
        android:inputType="number"
        android:background="@drawable/edittext_style_g"
        app:layout_constraintTop_toTopOf="parent"
        android:layout_marginRight="8dp"
        app:layout_constraintRight_toRightOf="parent"
        android:layout_marginLeft="8dp"
        app:layout_constraintLeft_toLeftOf="parent"
        android:layout_marginStart="8dp"
        android:layout_marginEnd="8dp"
        app:layout_constraintHorizontal_bias="0.0" />



     <Button
         android:id="@+id/btnSendOTP"
         android:layout_width="300dp"
         android:layout_height="55dp"
         android:textSize="23sp"
         android:text="Send OTP"
         android:textColor="#ffffff"
         android:background="@drawable/button_style_g"
         android:layout_marginRight="8dp"
         app:layout_constraintRight_toRightOf="parent"
         android:layout_marginLeft="8dp"
         app:layout_constraintLeft_toLeftOf="parent"
         android:layout_marginTop="35dp"
         app:layout_constraintTop_toBottomOf="@+id/txtMobile"
         android:layout_marginStart="8dp"
         android:layout_marginEnd="8dp" />

</android.support.constraint.ConstraintLayout>



<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/layoutB"
    android:visibility="gone"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="319dp"
    android:layout_height="287dp"
    ......
    ......>


<ImageView
        android:id="@+id/imgProgress"
        android:layout_width="120dp"
        android:layout_height="120dp"
        android:layout_marginTop="33dp"
        android:background="@null"
        ....
        .... />

</android.support.constraint.ConstraintLayout>

这是布局B-注意:除了进度条覆盖的部分之外,布局A在这里是隐藏的


布局B是否与ProgressBar布局相同?是的,布局B包含ProgressBar共享您的完整xml@sumit,我添加了布局xml@mrid:您是否尝试将背景设置为layoutB的父布局?layoutB是否与ProgressBar布局相同?是的,layoutB包含ProgressBar共享您的完整布局xml@sumit,我已经添加了布局xml@mrid:您是否尝试过将背景设置为layoutB的父布局?