Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/366.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 Layout - Fatal编程技术网

Java 当屏幕旋转时,布局会改变

Java 当屏幕旋转时,布局会改变,java,android,android-layout,Java,Android,Android Layout,我有一个项目,当我在emulator上启动它时,布局是有序的,但当我旋转屏幕时,布局会改变。例如,当项目启动时,textview1位于textview2的顶部,但在我旋转屏幕后,textview1和textview2位于同一位置。我该怎么办?当屏幕旋转时。我希望布局与设备相适应。例如,它安装在平板电脑上。布局仍然是一样的。当它安装在智能手机上并且屏幕旋转时,我希望布局保持不变。为布局创建两个文件夹:第一个是布局栏,另一个是布局端口,创建两个不同的xml文件,使用相同的名称并根据横向或纵向视图,分

我有一个项目,当我在emulator上启动它时,布局是有序的,但当我旋转屏幕时,布局会改变。例如,当项目启动时,textview1位于textview2的顶部,但在我旋转屏幕后,textview1和textview2位于同一位置。我该怎么办?当屏幕旋转时。我希望布局与设备相适应。例如,它安装在平板电脑上。布局仍然是一样的。当它安装在智能手机上并且屏幕旋转时,我希望布局保持不变。

为布局创建两个文件夹:第一个是
布局栏
,另一个是
布局端口
,创建两个不同的xml文件,使用相同的名称并根据横向或纵向视图,分别用于
布局平台
布局端口
设计布局(xml文件)
设备将根据方向自动获取xml文件

更多信息请点击此处:


为布局创建两个文件夹:第一个是
layout land
,另一个是
layout port
,分别为
layout land
layout port
设计布局(xml文件)
设备将根据方向自动获取xml文件

更多信息请点击此处:


您必须为每个屏幕大小和方向创建布局文件

res/layout/my_layout.xml             // layout for normal screen size ("default")
res/layout-small/my_layout.xml       // layout for small screen size
res/layout-large/my_layout.xml       // layout for large screen size
res/layout-xlarge/my_layout.xml      // layout for extra large screen size
res/layout-xlarge-land/my_layout.xml // layout for extra large in landscape orientation

您必须为每个屏幕大小和方向创建布局文件

res/layout/my_layout.xml             // layout for normal screen size ("default")
res/layout-small/my_layout.xml       // layout for small screen size
res/layout-large/my_layout.xml       // layout for large screen size
res/layout-xlarge/my_layout.xml      // layout for extra large screen size
res/layout-xlarge-land/my_layout.xml // layout for extra large in landscape orientation

一般来说,如果您只有一个布局文件夹,您的布局在平板电脑或手机的横向和纵向模式下应该是相同的,因为android找不到其他布局可供使用

如果满足设备的条件,Android系统将使用特定布局:

例如如果设备处于横向,它会尝试从文件夹“layout land”加载名为[some layout.xml]的布局,但如果在该文件夹中找不到您的[some layout.xml]文件 或者“layout land”文件夹甚至不存在,它使用默认“layout”文件夹中的[some layout.xml]布局

所以我相信你的布局文件中一定有个问题 以横向模式将文本视图放置在同一位置

否则,如果你想要不同的纵向布局和横向布局,
在资源中创建一个名为“layout land”的新文件夹,并将其添加到布局副本中,并添加您希望文本视图在横向模式下以不同方式放置的方式。

通常,如果您只有一个布局文件夹,平板电脑或手机上的横向和纵向布局应该相同,因为android找不到其他布局可供使用

如果满足设备的条件,Android系统将使用特定布局:

例如如果设备处于横向,它会尝试从文件夹“layout land”加载名为[some layout.xml]的布局,但如果在该文件夹中找不到您的[some layout.xml]文件 或者“layout land”文件夹甚至不存在,它使用默认“layout”文件夹中的[some layout.xml]布局

所以我相信你的布局文件中一定有个问题 以横向模式将文本视图放置在同一位置

否则,如果你想要不同的纵向布局和横向布局,
在资源中创建一个名为“layout land”的新文件夹,并将其添加到布局副本中,并添加您希望文本视图在横向模式下以不同方式放置的方式。

您应该使用相对布局

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_height="fill_parent"
android:layout_width="fill_parent">
<TextView
    android:id="@+id/TextView01"
    android:text="RED"
    android:layout_height="wrap_content"
    android:layout_width="wrap_content"></TextView>
<TextView
    android:id="@+id/TextView02"
    android:text="ORANGE"
    android:layout_height="wrap_content"
    android:layout_width="wrap_content"
    android:layout_below="@+id/TextView01"></TextView>
</RelativeLayout>

你应该使用相对布局

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_height="fill_parent"
android:layout_width="fill_parent">
<TextView
    android:id="@+id/TextView01"
    android:text="RED"
    android:layout_height="wrap_content"
    android:layout_width="wrap_content"></TextView>
<TextView
    android:id="@+id/TextView02"
    android:text="ORANGE"
    android:layout_height="wrap_content"
    android:layout_width="wrap_content"
    android:layout_below="@+id/TextView01"></TextView>
</RelativeLayout>


你想做什么?在旋转时冻结布局或更改视图?即使屏幕旋转,是否仍要将屏幕保持在portait模式?您需要从两个方向创建不同的布局google它将得到答案您需要添加到
横向
纵向
方向模式的单独布局文件中…您想要做什么做在旋转时冻结布局或更改视图?即使屏幕旋转,是否仍要将屏幕保持在portait模式?您需要从两个方向创建不同的布局google它将得到答案您需要添加到
横向
纵向
方向模式的单独布局文件中…我还有另一个问题它真的是一个文件夹还是一个xml文件?我已经做过了。但是当我重新启动eclipse时。我的班级在这一行有错误。setContentView(R.layout.mylayout.xml)确保您的导入中没有此项:import android.R;但是导入您的应用程序\u packagename.R;我已经做过了。导入com.example.login1.R,我仍然拥有相同的error@KarlCaday你是否尝试过setContentView(R.layout.mylayout);输入R.layout。然后Ctrl+SpaceI还有一个问题。它真的是一个文件夹还是一个xml文件?我已经做过了。但是当我重新启动eclipse时。我的班级在这一行有错误。setContentView(R.layout.mylayout.xml)确保您的导入中没有此项:import android.R;但是导入您的应用程序\u packagename.R;我已经做过了。导入com.example.login1.R,我仍然拥有相同的error@KarlCaday你是否尝试过setContentView(R.layout.mylayout);输入R.layout。然后按Ctrl键+Space@KarlCaday当然创建此文件夹。将orjinal布局文件复制到每个文件夹。在“常规布局”选项卡中编辑xml时,请更改屏幕大小。这样,您可以看到每个屏幕大小的布局输出。编辑它们,我已经做过了。但是当我重新启动eclipse时。我的班级在这一行有错误。setContentView(R.layout.mylayout.xml)@KarlCaday当然可以试试setContentView(R.layout.mylayout)@KarlCaday。创建此文件夹。将orjinal布局文件复制到每个文件夹。在“常规布局”选项卡中编辑xml时,请更改屏幕大小。这样,您可以看到每个屏幕大小的布局输出。编辑它们,我已经做过了。但是当我重新启动eclipse时。我的班级有e