Java 如何在运行时更改视图大小
如果方向在运行时发生变化,我想将片段并排显示。我所做的是声明两个框架布局,第二个尺寸在高度和宽度方面为零 然后当方向改变时,我尝试调整框架布局的大小。不是每个片段占据屏幕的一半,而是重叠并占据整个屏幕。那么,为什么两者都占据整个屏幕而不是占据屏幕的一半呢 FrameLayout frame=FrameLayout findViewByIdR.id.content\u frame; 宽度、高度; 肖像宽度=frame.getWidth; PortriaHeight=frame.getHeight; frame.getLayoutParams.width=端口高度/2; frame.getLayoutParams.height=宽度/2; frame.setX0; frame.setY0; 框架布局; 框架。失效; FrameLayout contentFrame=FrameLayout findViewByIdR.id.conversation\u历史记录; contentFrame.getLayoutParams.width=PortrialHeight/2; contentFrame.getLayoutParams.height=宽度/2; contentFrame.setxportrialHeight/2; contentFrame.setYportraitWidth/2; contentFrame.requestLayout; contentFrame.invalidate;Java 如何在运行时更改视图大小,java,android,android-framelayout,Java,Android,Android Framelayout,如果方向在运行时发生变化,我想将片段并排显示。我所做的是声明两个框架布局,第二个尺寸在高度和宽度方面为零 然后当方向改变时,我尝试调整框架布局的大小。不是每个片段占据屏幕的一半,而是重叠并占据整个屏幕。那么,为什么两者都占据整个屏幕而不是占据屏幕的一半呢 FrameLayout frame=FrameLayout findViewByIdR.id.content\u frame; 宽度、高度; 肖像宽度=frame.getWidth; PortriaHeight=frame.getHeight;
如果您在屏幕上显示了决定性数量的片段,则看起来您确实会这样做 我强烈建议只创建一个布局景观变化。系统将注意到方向发生了变化,并查找相关布局-位于res->layout land文件夹的正下方
如果您没有,并且正在使用Android Studio,只需在设计模式下打开布局,找到带有Android头部的文件图标,单击该图标-然后选择创建横向布局我知道这是最简单的方法,但并不总是需要在横向中向两个相邻的选项卡显示。这取决于显示的片段。有些不需要有两个片段并排显示在景观中,看起来它们是相同的宽度和高度。您是否考虑过为每个片段使用水平线性布局和框架布局,调整它们的宽度以包装内容,并为它们分配1的权重。然后,如果没有要显示的第二个片段,那么只需抓取对最右侧帧的引用,并将可见性设置为“消失”。