0

我有一个嵌套的线性布局。在我的模拟器上,完整的布局是可见的。但在我的手机上,布局并没有完全显示出来。它被夹在中间。它不显示最底部的元素。

如何使布局完全适合我的屏幕?

它在我手机上的外观截图:

它在我手机上的外观截图:

这是我的代码:

    <?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="match_parent"
    android:background="@raw/bg1"    
    android:orientation="vertical">

    <LinearLayout
        android:layout_marginTop="20dp"
        android:layout_marginLeft="20dp"
        android:layout_marginRight="20dp"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"         
        android:orientation="horizontal">

        <ImageView
        android:id="@+id/imageView1"
        android:layout_width="60dp"
        android:layout_height="60dp"       
        android:src="@drawable/logo" />

        <TextView
        android:id="@+id/textView1"
        android:layout_marginLeft="10dp"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" 
        android:layout_gravity="center"       
        android:text="Large Text"
        android:textAppearance="?android:attr/textAppearanceLarge" />    

    </LinearLayout>

     <Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:layout_marginTop="30dp"
        android:layout_centerHorizontal="true"        
        android:text="Button" />

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="30dp"
        android:layout_marginLeft="20dp"
        android:layout_marginRight="20dp" 
        android:orientation="horizontal">

        <EditText
        android:id="@+id/editText1"
        android:background="#33FFFFFF"
        android:layout_width="200dp"
        android:layout_height="200dp"   />

        <ImageButton
        android:id="@+id/imageButton1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginLeft="10dp"
        android:layout_marginTop="65dp"       
        android:src="@drawable/ic_talk" />

    </LinearLayout>

    <Button
        android:id="@+id/button2"
        style="?android:attr/buttonStyleSmall"
        android:layout_gravity="center"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Button" />

</LinearLayout>
4

2 回答 2

2

如果您使用权重,无论屏幕大小如何,您都会得到相同的结果。在这种情况下,我认为这是您的问题。在此页面上进行了解释:http: //developer.android.com/training/basics/firstapp/building-ui.html

例如:

<EditText android:id="@+id/edit_message"
        android:layout_weight="1"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:hint="@string/edit_message" />
于 2013-03-26T11:05:20.183 回答
0

这是因为您将元素的宽度、高度和边界声明为静态数字。您的设备和模拟器的尺寸必须不同,并且您具有硬编码值,使其能够在模拟器上正确显示,但不能在任何其他设备上显示。阅读本文以了解如何正确制作布局。

于 2013-03-26T11:02:16.450 回答