Android onResume布局问题

时间:2012-11-21 14:22:43

标签: android layout onresume

我的菜单有问题。

我的背景布局充满了垂直和水平按钮。看起来像这样: 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);
}

3 个答案:

答案 0 :(得分:1)

您不需要删除onResume()中的所有视图。就布局而言,这应该是您需要做的所有事情。

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

}

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

答案 1 :(得分:0)

LinearLayout buttonBackgroundLayout =(LinearLayout)findViewById(R.id.buttonHintergrundLayout);

将其移至onCreate并仅使用buttonBackgroundLayout的一个实例(声明它为globbaly)

我猜问题是创建视图的多个实例

答案 2 :(得分:0)

嗯,在另一部手机(三星)上,情况正好相反。在启动时它看起来很糟糕,从一个startet游戏恢复它看起来不错,在不同的应用程序之间切换它看起来很糟糕... WTF!?