0

在我的自定义视图中,我使用以下简单方法动态更改子视图:

    private void changeChildView(final View oldView, final View newView) {
    final int viewIndex = indexOfChild(oldView);
    removeViewAt(viewIndex);
    addView(newView, viewIndex);
}

在开始时 childView1 是放在 ViewGroup 上的。一旦用户在 childView1 上触发手势,我就会执行以下步骤:

  1. 我将 childView1 存储在自定义视图的全局变量中:mTempView = childView1

  2. 然后我膨胀 childview2

  3. changeChildView(childView1, childView2)

它就像一个魅力。但是,如果用户点击后退按钮,我需要恢复到应该存储在此时的全局变量中的 childView1。我确实通过以下方式恢复:

changeChildView(childView2, mTempView)

但是还原不起作用。我检查了 mTempView 是否包含视图,但它从未显示。奇怪的是,它会在我旋转后立即显示,这意味着视图已成功添加回还原过程中。

4

0 回答 0