Android:添加/删除片段时视图布局重置

时间:2014-08-08 20:25:43

标签: java android view fragment scale

我对android有点新,但我对java很了解。

作为一种简单的可扩展性手段,我使用这些简单的功能:

public void scaleMyView(float s) {

    scaleFactor = scaleFactor + s;
    // s will usually be like 0.1 or -0.1 = 10% size gain/loss

    View myMainView = findViewById(R.id.MyMainView);
    Display display = getWindowManager().getDefaultDisplay();
    Point size = new Point();
    display.getSize(size);
    int x = size.x;
    int y = size.y;


    myMainView.setScaleX(scaleFactor);
    myMainView.setScaleY(scaleFactor);

    myMainView.layout(0, 0, ((int)(x/scaleFactor)), ((int)(y/scaleFactor)))

    myMainView.setPivotX(0);
    myMainView.setPivotY(getActionBar().getHeight());
}

这正是我想要的,改变主视图及其中的所有内容并保持原位。

现在出现了问题:

每当我将片段添加到该主视图的子视图时,“布局”部分将被重置,虽然缩放和位置保持不变,但大小会缩小回默认值。 (片段很简单,基本上都很简单。)

我尝试了很多东西,但我仍然不知道在哪里或如何解决这个问题。

非常感谢任何帮助!

1 个答案:

答案 0 :(得分:0)

尝试使用" addOnLayoutChangeListener" mainView上的方法:

myMainView.addOnLayoutChangeListener(new View.OnLayoutChangeListener() {
    @Override
    public void onLayoutChange(
        View view, int i, int i2, int i3, int i4, int i5, int i6, int i7, int i8)
    {
        // set view properties here
    }
});
myMainView.requestLayout();