Android 在使用bringToFront()方法时遇到问题
嗨,朋友们,我是android新手,在我的项目中,我需要在同一位置显示两个布局,并需要在按下按钮时应用旋转动画,我通过在同一位置创建两个布局并使用Layout.bringToFront()方法实现了同样的效果,但我不知道为什么在某些情况下它可以正确地设置动画,但是bringToFront()方法不能将我的布局放在前面Android 在使用bringToFront()方法时遇到问题,android,android-layout,android-animation,Android,Android Layout,Android Animation,嗨,朋友们,我是android新手,在我的项目中,我需要在同一位置显示两个布局,并需要在按下按钮时应用旋转动画,我通过在同一位置创建两个布局并使用Layout.bringToFront()方法实现了同样的效果,但我不知道为什么在某些情况下它可以正确地设置动画,但是bringToFront()方法不能将我的布局放在前面 public void bodyClicked() { System.out.println("Inside Body Clicked..."); Syst
public void bodyClicked()
{
System.out.println("Inside Body Clicked...");
System.out.println("Enevelope boolean value... "+enevelopefocus);
System.out.println("Body Boolean Value..."+bodyfocus);
if(!bodyfocus)
{
bodyLayout.startAnimation(AnimationUtils.loadAnimation(AddJobNew.this, R.anim.rotate_right));
fromToRootLayout.startAnimation(AnimationUtils.loadAnimation(AddJobNew.this,R.anim.rotate_left));
final Handler handler = new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {
runOnUiThread(new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
fromToRootLayout.startAnimation(AnimationUtils.loadAnimation(AddJobNew.this, R.anim.rotate_center_after_left));
bodyLayout.startAnimation(AnimationUtils.loadAnimation(AddJobNew.this, R.anim.rotate_right_center));
bodyLayout.bringToFront();
bodyLayout.invalidate();
bodyLayout.requestFocus();
bodyfocus=true;
enevelopefocus=false;
System.out.println("Body CLicked Completed...");
System.out.println("Enevelope boolean value... "+enevelopefocus);
System.out.println("Body Boolean Value..."+bodyfocus);
fromToRootLayout.invalidate();
}
});
}
}, 500);
headerLayout.setVisibility(View.VISIBLE);
}
}
public void enevlopeCLicked()
{
System.out.println("Inside Enevelope Clicked...");
System.out.println("Enevelope boolean value... "+enevelopefocus);
System.out.println("Body Boolean Value..."+bodyfocus);
headerLayout1.setVisibility(View.GONE);
fromBodyLayout.setVisibility(View.GONE);
if(fromAddressTExtView.getText().toString().length()>0)
{
fromAddressTExtView.setVisibility(View.VISIBLE);
fromTopEditBtn.setVisibility(View.GONE);
fromcontactpick.setVisibility(View.GONE);
}
else
{
fromTopEditBtn.setVisibility(View.VISIBLE);
fromcontactpick.setVisibility(View.VISIBLE);
fromAddressTExtView.setVisibility(View.GONE);
}
if(toAddressTExtView.getText().toString().length()>0)
{
toAddressTExtView.setVisibility(View.VISIBLE);
toBottomEditBtn.setVisibility(View.GONE);
toContactPick.setVisibility(View.GONE);
}
else
{
toBottomEditBtn.setVisibility(View.VISIBLE);
toContactPick.setVisibility(View.VISIBLE);
toAddressTExtView.setVisibility(View.GONE);
}
if(!enevelopefocus)
{
fromToRootLayout.startAnimation(AnimationUtils.loadAnimation(AddJobNew.this, R.anim.rotate_left));
bodyLayout.startAnimation(AnimationUtils.loadAnimation(AddJobNew.this,R.anim.rotate_right));
final Handler handler = new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {
runOnUiThread(new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
bodyLayout.startAnimation(AnimationUtils.loadAnimation(AddJobNew.this, R.anim.rotate_right_center));
fromToRootLayout.startAnimation(AnimationUtils.loadAnimation(AddJobNew.this, R.anim.rotate_center_after_left));
fromToRootLayout.bringToFront();
fromToRootLayout.invalidate();
fromToRootLayout.requestFocus();
enevelopefocus=true;
bodyfocus=false;
System.out.println("Enevelope CLicked Completed...");
System.out.println("Enevelope boolean value... "+enevelopefocus);
System.out.println("Body Boolean Value..."+bodyfocus);
bodyLayout.invalidate();
}
});
}
}, 500);
headerLayout.setVisibility(View.VISIBLE);
}
}
在这里,我使用两个标志来表示body和enevelope每当单击特定按钮时,我都会调用bringToFront()方法。在这里,它会正确调用,标志值也会正确更改,但我不知道在某些情况下,它会自动变为背景
请帮帮我
谢谢现在解决了问题,我犯的错误是我编写的语句bodyLayout.SetVisibility(View.GONE)中的其他部分代码影响了我的动画,请显示相关代码。请不要粘贴你所有的代码,只粘贴你正在设置布局动画和使用bringToFront()的部分。我已经附加了代码片段@SimonHaving Problem当body设置动画时,它会出现在前面并自动消失,每当我再次启动动画时,它的行为就像它在顶部并移动到背景