我正在尝试编写我的第一个android-app。我读了很多,但我的布局有问题。 这两个xml有什么问题? 为了更好地理解,我拍了一张照片:
我的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>
答案 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:
LinearLayout
方向正在发生的事情是:a)它是水平的,b)你的按钮首先被放置,而c)你的按钮有vertical
,这意味着android:layout_width="match_parent"
无处可放,你的Button已经占据了屏幕上的所有空间(你能看出为什么会出现这种情况吗?)
进行这些更改,然后根据需要更新您的问题,因为我认为您的问题会发生变化