Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/318.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在运行时更改视图大小_Java_Android_Android Framelayout - Fatal编程技术网

Java 如何在运行时更改视图大小

Java 如何在运行时更改视图大小,java,android,android-framelayout,Java,Android,Android Framelayout,如果方向在运行时发生变化,我想将片段并排显示。我所做的是声明两个框架布局,第二个尺寸在高度和宽度方面为零 然后当方向改变时,我尝试调整框架布局的大小。不是每个片段占据屏幕的一半,而是重叠并占据整个屏幕。那么,为什么两者都占据整个屏幕而不是占据屏幕的一半呢 FrameLayout frame=FrameLayout findViewByIdR.id.content\u frame; 宽度、高度; 肖像宽度=frame.getWidth; PortriaHeight=frame.getHeight;

如果方向在运行时发生变化,我想将片段并排显示。我所做的是声明两个框架布局,第二个尺寸在高度和宽度方面为零

然后当方向改变时,我尝试调整框架布局的大小。不是每个片段占据屏幕的一半,而是重叠并占据整个屏幕。那么,为什么两者都占据整个屏幕而不是占据屏幕的一半呢

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;
如果您在屏幕上显示了决定性数量的片段,则看起来您确实会这样做

我强烈建议只创建一个布局景观变化。系统将注意到方向发生了变化,并查找相关布局-位于res->layout land文件夹的正下方


如果您没有,并且正在使用Android Studio,只需在设计模式下打开布局,找到带有Android头部的文件图标,单击该图标-然后选择创建横向布局

我知道这是最简单的方法,但并不总是需要在横向中向两个相邻的选项卡显示。这取决于显示的片段。有些不需要有两个片段并排显示在景观中,看起来它们是相同的宽度和高度。您是否考虑过为每个片段使用水平线性布局和框架布局,调整它们的宽度以包装内容,并为它们分配1的权重。然后,如果没有要显示的第二个片段,那么只需抓取对最右侧帧的引用,并将可见性设置为“消失”。