Отображение двух линейных макетов - PullRequest
1 голос
/ 15 марта 2012

В моем xml-файле есть два макета lenear, и сначала у него есть высота и ширина макета в качестве fill_parent. Теперь в нижней части я хочу отобразить второй макет также с первым макетом, как он есть. Является ли это возможным ? Мой код XML выглядит следующим образом

<LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="#e0ffff" >

    <TableLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" >

        <TableRow>

            <ImageView
                android:layout_width="100px"
                android:layout_height="100px"
                android:layout_marginLeft="20dip"
                android:layout_marginTop="20dip"
                android:src="@drawable/Catlog" >
            </ImageView>

            <ImageView
                android:layout_width="100px"
                android:layout_height="100px"
                android:layout_marginLeft="30dip"
                android:layout_marginTop="20dip"
                android:src="@drawable/Mycatlog" >
            </ImageView>

            <ImageView
                android:layout_width="100px"
                android:layout_height="100px"
                android:layout_marginLeft="40dip"
                android:layout_marginTop="20dip"
                android:src="@drawable/Events" >
            </ImageView>
        </TableRow>

        <TableRow>

            <ImageView
                android:layout_width="100px"
                android:layout_height="100px"
                android:layout_marginLeft="20dip"
                android:layout_marginTop="20dip"
                android:src="@drawable/Lerningprofiles" >
            </ImageView>

            <ImageView
                android:layout_width="100px"
                android:layout_height="100px"
                android:layout_marginLeft="20dip"
                android:layout_marginTop="20dip"
                android:src="@drawable/Profile" >
            </ImageView>
        </TableRow>
    </TableLayout>
</LinearLayout>

<LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="#0F304C"
    android:orientation="horizontal"
    android:weightsum="0.05" >

    <ImageView
        android:layout_width="100px"
        android:layout_height="100px"
        android:layout_marginLeft="20dip"
        android:layout_marginTop="20dip"
        android:src="@drawable/Profile" >
    </ImageView>
</LinearLayout>

Ответы [ 2 ]

0 голосов
/ 15 марта 2012

Я не мог понять причину того, что у вас есть отдельная LinearLayout для отображения окончательного ImageView.

То же самое можно отобразить, просто добавив третий, как показано ниже:

<TableRow >

            <ImageView
                android:layout_width="100px"
                android:layout_height="100px"
                android:layout_marginLeft="20dip"
                android:layout_marginTop="20dip"
                android:background="#0F304C"
                android:src="@drawable/ic_launcher" >
            </ImageView>

        </TableRow>

AОднако есть несколько рекомендаций:

  1. Никогда не используйте значения px непосредственно в макетах.

  2. Попробуйте использовать команду layoutopt линейный инструмент для всех ваших макетов для повышения производительности и оптимизации макетов.

0 голосов
/ 15 марта 2012

Нет, вместо этого вы можете использовать относительный макет в качестве родительского макета, а затем поместить линейный макет в качестве дочернего. Я думаю, что это может дать желаемое представление. Потому что android: layout_alignParentBottom = "true" не имеет никакого эффекта, если только LinearLayout вложен в RelativeLayout

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent" 
android:layout_height="fill_parent">
...
<LinearLayout 
....
...