gpt4 book ai didi

Android onResume布局问题

转载 作者:行者123 更新时间:2023-11-30 03:54:58 24 4
gpt4 key购买 nike

我的菜单有问题。

我有一个充满按钮的背景布局,垂直和水平。看起来像这样: 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() 中的所有 View 。就布局而言,这应该是您需要做的全部。

@Override
public void onResume() {
super.onResume();
setContentView(R.id.buttonHintergrundLayout);

}

您可能还想在此处设置所有 onClickListners。但是你在这里设置的任何东西,你都应该在 onPause() 中删除。但是,设置 View 基本上是免费的,特别是如果您只是使用已经存在的 View 。

关于Android onResume布局问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13495309/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com