首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何旋转ViewGroup

如何旋转ViewGroup
EN

Stack Overflow用户
提问于 2021-05-11 20:56:42
回答 1查看 27关注 0票数 1

我有一个FrameLayout,我使用WindowManager.addView将这个FrameLayout显示为一个浮动窗口。在这个FrameLayout中有很多子视图,比如ImageView和SeekBar。然后我需要通过View.setRotate轮换这个FrameLayout。调用此方法后,FrameLayout似乎旋转了,但当我想要与其中的一些子视图进行交互时,我发现所有的子视图在旋转之前仍然在原始位置。那么如何旋转ViewGroup及其所有子视图呢?

EN

回答 1

Stack Overflow用户

发布于 2021-05-11 21:38:55

你可以试试这个:

代码语言:javascript
复制
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();

这应该会有帮助。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67487232

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档