[英]Android onResume Layout Problems
我的菜单有问题。
我有一个垂直和水平按钮填充的背景布局。 看起来像这样: http : //s7.directupload.net/file/d/3081/sewg79tr_png.htm
因此,当我开始一个新游戏(新的Intent)并按返回按钮时,屏幕布局已损坏,看起来真的很糟糕: http : //s14.directupload.net/file/d/3081/ewfeidya_png.htm
当我切换到另一个应用程序并切换回菜单时,布局看起来像启动时的样子。 一切顺利。
我试图删除所有按钮并在onResume中重新填充布局,但是它不起作用,我真的不知道为什么。 System.out可以正常工作,但是只有当我在应用程序之间切换时,布局才会重置。
有人知道这个问题吗?
编辑:背景按钮的OnClickListener更改了单击按钮的背景图片。 该OnClickListener仍然可以在残破的布局中使用。
@Override
public void onResume() {
super.onResume();
LinearLayout buttonBackgroundLayout = (LinearLayout) findViewById(R.id.buttonHintergrundLayout);
//int count = buttonBackgroundLayout.getChildCount();
//System.out.println(count);
//for (int i = 0; i < count; i++) {
// View child = buttonBackgroundLayout.getChildAt(i);
// if (child instanceof View) ((ViewGroup) child).removeAllViews();
//}
buttonBackgroundLayout.removeAllViewsInLayout();
buttonBackgroundLayout.invalidate();
createButtonImages(breite);
createBackgroundButtons(breite);
System.out.println("WOOOHOOO");
}
编辑:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
buttonBackgroundLayout = (LinearLayout) findViewById(R.id.buttonHintergrundLayout);
createButtons();
DisplayMetrics display = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(display);
breite = display.widthPixels;
createButtonImages(breite);
createBackgroundButtons(breite);
}
您不需要删除onResume()中的所有视图。 就布局而言,这应该是您需要做的所有事情。
@Override
public void onResume() {
super.onResume();
setContentView(R.id.buttonHintergrundLayout);
}
您可能还想在此处设置所有onClickListners。 但是您在此处设置的任何内容都应该在onPause()中删除。 但是,设置视图本质上是免费的,尤其是在您仅使用已经存在的视图的情况下。
LinearLayout buttonBackgroundLayout =(LinearLayout)findViewById(R.id.buttonHintergrundLayout);
将其移动到onCreate上,仅制作和使用buttonBackgroundLayout的一个实例(声明为globbaly)
我想问题是创建视图的多个实例
嗯,在另一部手机上(三星),情况恰恰相反。 在Startup上看起来很糟糕,从startet游戏中恢复后看起来很不错,并且在不同的应用程序之间切换之后看起来很糟糕... Wtf !?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.