我有一个FrameLayout,我使用WindowManager.addView将这个FrameLayout显示为一个浮动窗口。在这个FrameLayout中有很多子视图,比如ImageView和SeekBar。然后我需要通过View.setRotate轮换这个FrameLayout。调用此方法后,FrameLayout似乎旋转了,但当我想要与其中的一些子视图进行交互时,我发现所有的子视图在旋转之前仍然在原始位置。那么如何旋转ViewGroup及其所有子视图呢?
发布于 2021-05-11 21:38:55
你可以试试这个:
RelativeLayout mainLayout = (RelativeLayout) findViewById(R.id.main);
int w = mainLayout.getWidth();
int h = mainLayout.getHeight();
mainLayout.setRotation(270.0f);
mainLayout.setTranslationX((w - h) / 2);
mainLayout.setTranslationY((h - w) / 2);
ViewGroup.LayoutParams lp = (ViewGroup.LayoutParams) mainLayout.getLayoutParams();
lp.height = w;
lp.width = h;
mainLayout.requestLayout();这应该会有帮助。
https://stackoverflow.com/questions/67487232
复制相似问题