Java Android:添加/删除片段时视图布局重置
我对android有点陌生,但我对java相当了解 作为一种简单的可伸缩性方法,我使用以下简单功能:Java Android:添加/删除片段时视图布局重置,java,android,view,fragment,scale,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
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());
}
这正是我想要的,改变了主视图和其中的所有内容的大小,并保持它的位置
现在问题来了:
每当我将片段添加到主视图的子视图时,布局部分都会重置,尽管比例和位置保持不变,但大小会收缩回默认值。
这些片段非常简单,基本上是简单的按钮
我尝试了很多东西,但我仍然不知道在哪里或如何解决这个问题
非常感谢您的帮助 尝试在mainView上使用addOnLayoutChangeListener方法:
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();
非常感谢。这正是我想要的。我仍然觉得我做错了什么,我的意思是,我觉得我错过了什么,但是,它正在工作,这才是最重要的。如果你担心这一点,你可以在多个设备上测试它,或者使用不同版本的安卓模拟器。另外,尝试更改当前活动和在当前活动之前打开的其他活动中的方向,然后返回此活动,看看是否不存在任何问题,因此没有任何重要的问题需要担心!不客气。