Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/15.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
一个Android布局xml文件,处理稍微不同的纵向和横向布局?_Android_Xml_Android Layout - Fatal编程技术网

一个Android布局xml文件,处理稍微不同的纵向和横向布局?

一个Android布局xml文件,处理稍微不同的纵向和横向布局?,android,xml,android-layout,Android,Xml,Android Layout,我明白了,如果你想要一个不同的纵向和横向布局,你可以为每个方向设置一个不同的xml文件 如果更改非常小,并且您不希望每次设计更改时都必须维护2组布局文件,该怎么办?在单个布局xml文件中是否有任何方式可以表示: 如果(肖像) 否则…取决于更改。。。有时候,做一个新的布局比按程序做所有的布局要好,但如果是的话,你可以这样做 if (getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT)

我明白了,如果你想要一个不同的纵向和横向布局,你可以为每个方向设置一个不同的xml文件

如果更改非常小,并且您不希望每次设计更改时都必须维护2组布局文件,该怎么办?在单个布局xml文件中是否有任何方式可以表示:

如果(肖像)


否则…

取决于更改。。。有时候,做一个新的布局比按程序做所有的布局要好,但如果是的话,你可以这样做

if (getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT) {
        //do the code
}
else{
        //do the code
}

如果希望以编程方式处理更改,而不是使用两个xml布局,那么可以使用一对布尔属性,让您在运行时查询是纵向还是横向

e、 g.在values\dimens.xml中

false

和在值land\dimens.xml中

true

然后,您可以在运行时使用以下工具查询:


booleanislandscape=getResources().getBoolean(R.bool.is_景观)

您可能会有不同的方向变化值,例如大小调整。或者你可以务实地这样做,以便在修改布局时轮换。你可以将布局的不同组件分离为单独的布局(使用
include
),并且你将有两个版本的相同布局(纵向和横向),只用于UI的一小部分。正如@mbmc指出的,您不需要覆盖整个布局。使用
include
您只能提取一个视图来重新定义,您可以在另一个xml文件中使用该属性吗?这就是我想要做的。它应该在values或values land文件夹中的任何xml文件中都能正常工作。我觉得这可能会有所帮助,但在布局文件中,我如何检查是否设置了此标志,并根据其是否为真更改布局?不,您将无法基于xml中的特定变量执行任何逻辑,但也可以为纵向和横向创建不同的样式,允许您将某些UI元素设置为可见或消失。要使用is_横向属性,您需要找到所有视图,并在代码中而不是在xml中设置它们的属性。