【问题标题】:ViewFlipper crashes after orientation changeViewFlipper 在方向更改后崩溃
【发布时间】:2016-10-14 15:38:55
【问题描述】:

我在使用 ViewFlipper 访问视图内的数据时尝试使用 inflate。我已经完成了崩溃的示例项目。

ma​​in.xml

<?xml version="1.0" encoding="utf-8"?>  
<ViewFlipper xmlns:android="http://schemas.android.com/apk/res/android"  
    android:id="@+id/RelativeLayout"  
    android:layout_width="wrap_content"  
    android:layout_height="wrap_content" />

FlipViewBug.java

package android.FlipViewBug;

import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.view.LayoutInflater;
public class FlipViewBug extends Activity {

    private static LayoutInflater inflater = null;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    }
}

当我将模拟器从水平方向旋转到垂直方向时,CTRL+F11 应用程序崩溃,意外停止

如果我删除线

inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);

应用程序运行良好。我是不是在做错事?在我的应用程序中,我有更复杂的LinnarView ViewFlipper 是嵌套的,结果是一样的。

我在 android 1.5、2.2 和 Galaxy 选项卡上检查了这个。从垂直视图旋转到水平视图没有问题。

【问题讨论】:

    标签: android viewflipper


    【解决方案1】:

    根据经验,如果您将 UI 对象引用存储在 static 数据中,您可能做错了什么。 :) 即使事情看起来正常,您也可能会泄漏内存,直到 Android 决定终止您的进程。有关详细信息,请参阅Romain Guy's article

    所以基本上你回答了你自己的问题......不要那样做!如果您想延迟翻转视图的膨胀直到它们被翻转(即作为性能改进),我建议您查看ViewStub

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多