Почему LinearLayout выглядит так (пробел между элементами)? - PullRequest
2 голосов
/ 18 января 2012

Это основной XML-файл

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              android:layout_width="fill_parent"
              android:layout_height="fill_parent"
              android:orientation="vertical"
              android:background="@color/white"
        >
    <!--top part-->
    <include layout="@layout/top" android:layout_width="fill_parent"
             android:layout_height="0dp" android:layout_weight="1"/>

    <!--content area-->
    <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="0dp"
            android:layout_weight="5"
            android:background="#ff6600"
            >

    </LinearLayout>

    <!--bottom part-->
    <include layout="@layout/bottom" android:layout_width="fill_parent"
             android:layout_height="0dp" android:layout_weight="1"/>
</LinearLayout>

Когда я загружаю его в эмулятор, он выглядит как на рисунке ниже.

Weird display

Что я делаю не так?


РЕДАКТИРОВАТЬ

Это верхний и нижний XML.Основной, а также.

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              android:layout_width="fill_parent"
              android:layout_height="fill_parent"
        >
    <ImageView
            android:id="@+id/bottom_image"
            android:layout_height="fill_parent"
            android:layout_width="fill_parent"
            android:adjustViewBounds="true"
            android:src="@drawable/bottom"
            />
</LinearLayout>
-----------------------------------------------------------
<?xml version="1.0" encoding="utf-8"?>    
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              android:layout_width="fill_parent"
              android:layout_height="fill_parent"
        >
    <ImageView
            android:id="@+id/top_image"
            android:layout_height="fill_parent"
            android:layout_width="fill_parent"
            android:adjustViewBounds="true"
            android:src="@drawable/top"
            />

Ответы [ 4 ]

6 голосов
/ 21 января 2012

Пожалуйста, попробуйте следующий

Top.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
          android:layout_width="fill_parent"
          android:layout_height="wrap_content"
          android:id="@+id/top"
    >
<ImageView
        android:id="@+id/top_image"
        android:layout_height="fill_parent"
        android:layout_width="fill_parent"
        android:adjustViewBounds="true"
        android:src="@drawable/top"
        android:scaleType="fitXY"/>
</LinearLayout>

Bottom.xml

<?xml version="1.0" encoding="utf-8"?>    
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
          android:layout_width="fill_parent"
          android:layout_height="wrap_content"
          android:id="@+id/bottom"
    >
<ImageView
        android:id="@+id/bottom_image"
        android:layout_height="wrap_content"
        android:layout_width="fill_parent"
        android:adjustViewBounds="true"
        android:src="@drawable/bottom"
        android:scaleType="fitXY"/>
</LinearLayout>

и, наконец, Main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
          android:layout_width="fill_parent"
          android:layout_height="fill_parent"
          android:orientation="vertical"
          android:background="#000000"
    >
<!--top part-->
<include layout="@layout/top" android:layout_width="fill_parent"
         android:layout_height="wrap_content"/>

<!--content area-->
<LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:background="#ff6600"
        >

</LinearLayout>

<!--bottom part-->
<include layout="@layout/bottom" android:layout_width="fill_parent"
         android:layout_height="wrap_content"/>
</LinearLayout>

Это решит вашу проблему

1 голос
/ 18 января 2012

удалите android:layout_weight из верхней и нижней частей (и установите для него все, что угодно, кроме 0, в области содержимого). Таким образом, контент займет все доступное пространство.

На том, что вы сделали, вы только сказали контенту занять 5/7 доступного пространства, которое будет вести себя так, как вы показываете в зависимости от пропорций экрана.

0 голосов
/ 18 января 2012

Проверка определения layout_bottom и layout_top. Скорее всего, эти макеты имеют значения marginTop и marginBottom.

0 голосов
/ 18 января 2012

А на реальном смартфоне? Там тоже есть место? У вас есть новейшая версия инструментов платформы SDK?

...