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的父布局?