[英]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.