问题水平/垂直布局Android App

时间:2013-03-25 10:50:18

标签: android

我正在尝试编写我的第一个android-app。我读了很多,但我的布局有问题。 这两个xml有什么问题? 为了更好地理解,我拍了一张照片:pic

我的XML for main.xml

 <?xml version="1.0" encoding="utf-8"?>

 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:orientation="vertical" >



<ImageView

    android:id="@+id/imageView1"

    android:layout_width="wrap_content"

    android:layout_height="wrap_content"

    android:layout_weight="2.5"

    android:contentDescription="@string/upload"

    android:scaleType="fitCenter"

    android:visibility="visible" />



<LinearLayout

    android:layout_width="match_parent"

    android:layout_height="0dp"

    android:layout_weight="4"

    android:gravity="center"

    android:orientation="vertical" >



    <Button

        android:id="@+id/btnShoot"

        android:layout_width="match_parent"

        android:layout_height="wrap_content"

        android:layout_gravity="center"

        android:layout_marginLeft="50dp"

        android:layout_marginRight="50dp"

        android:text="@string/shoot_again" />

</LinearLayout>
</LinearLayout>

对于文件夹layout-land中的main.xml,如果我切换到横向模式应用程序崩溃:

 <?xml version="1.0" encoding="utf-8"?>

 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:orientation="horizontal" >



<Button

    android:id="@+id/btnShoot"

    android:layout_width="match_parent"

    android:layout_height="wrap_content"

    android:layout_gravity="center"

    android:layout_marginLeft="50dp"

    android:layout_marginRight="50dp"

    android:text="@string/shoot" />



<ImageView

    android:id="@+id/imageView1"

    android:layout_width="wrap_content"

    android:layout_height="wrap_content"

    android:contentDescription="@string/upload"

    android:scaleType="fitCenter"

    android:visibility="visible" />

 </LinearLayout>

1 个答案:

答案 0 :(得分:0)

好的,只看一下你的XML,就会出现一些问题:

Portrait XML:

< ImageView
    android:id="@+id/imageView1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_weight="2.5"

在这里,你设置了一个体重和一个身高 - 在LinearLayout你不能同时拥有这两个体重。要么自己设置高度,要么给它设置0dp的高度和权重,然后让LinearLayout指定高度。至于旋转的原因,图像本身可能会在您的资源中旋转。

横向XML:

  • 您的根[{1}}仍需要LinearLayout方向
  • 您的ImageView需要在Button
  • 上方声明

正在发生的事情是:a)它是水平的,b)你的按钮首先被放置,而c)你的按钮有vertical,这意味着android:layout_width="match_parent"无处可放,你的Button已经占据了屏幕上的所有空间(你能看出为什么会出现这种情况吗?)

进行这些更改,然后根据需要更新您的问题,因为我认为您的问题会发生变化