Добавление двух просмотров в Android - PullRequest
1 голос
/ 07 июля 2011

Итак, я хочу использовать вид сетки в верхней части моего экрана и вид таблицы в нижней половине моего экрана.Я думал, что это будет легко, но, видимо, я не прав.И да, я сделал свой обычный поиск в течение 1 часа, а затем опубликовать что-то на stackoverflow.

<?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:stretchColumns="1">


<GridView 
android:id="@+id/gridview"
android:layout_width="fill_parent" 
android:numColumns="4"
android:verticalSpacing="10dp"
android:horizontalSpacing="10dp"
android:stretchMode="columnWidth"
android:gravity="center"
android:layout_height="130dp"/>

<TableLayout
android:layout_width="fill_parent" 
android:layout_height="fill_parent"
android:stretchColumns="1">

<TableRow>
    <TextView 
    android:text="Name:" 
    android:id="@+id/TextView01" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content"/>


    <EditText 
    android:hint="Name"
    android:id="@+id/projectName" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content"/>
</TableRow>

<TableRow>
    <TextView 
    android:text="Start" 
    android:id="@+id/startText" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content"/>


    <Button
    android:text="Push"
    android:id="@+id/startdate" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content"
    android:onClick="startDate"/>

</TableRow>

<TableRow>
    <TextView 
    android:text="Finish" 
    android:id="@+id/finishText" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content"/>


    <Button
    android:id="@+id/finishdate" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content"
    android:onClick="finishDate"/>
</TableRow>
</TableLayout>

</LinearLayout>

Может быть, это легко.Может быть, я должен пойти спать и сделать это утром.Спасибо за вашу помощь.

Ответы [ 2 ]

1 голос
/ 07 июля 2011

1) Добавьте android:orientation="vertical" в LinearLayout.

2) Используйте android:layout_height="fill_parent" для ОБА Сетка n Макет таблицы И также добавьте android:layout_weight="0.5" в GridLayout и TableLayot. Это поровну разделит оба макета на экране.

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent" android:layout_height="fill_parent"
    android:stretchColumns="1" android:orientation="vertical">


    <GridView android:id="@+id/gridview" android:layout_width="fill_parent"
        android:numColumns="4" android:verticalSpacing="10dp"
        android:horizontalSpacing="10dp" android:stretchMode="columnWidth"
        android:gravity="center" **android:layout_height="fill_parent"**
        **android:layout_weight="0.5"** />

    <TableLayout android:layout_width="fill_parent"
        **android:layout_height="fill_parent"** android:stretchColumns="1"
        **android:layout_weight="0.5"**>

Остальная часть остается такой же ...

Вы можете попробовать различные комбинации layout_weight, такие как 0,4 и 0,6 или 0,8 и 0,2 и т. Д., Если вы не хотите, чтобы макеты равномерно разделяли экран. Но если вы используете layout_height для некоторого фиксированного значения пикселя или падения, оно будет выглядеть по-разному на экранах разных устройств ... Поэтому я рекомендую использовать параметр layout_weight.

0 голосов
/ 07 июля 2011

Ориентация по умолчанию для LinearLayout является горизонтальной.

Добавьте android:orientation="vertical" к вашей LinearLayout.

И не устанавливайте android:layout_height="fill_parent" для TableLayout, в противном случае он занимает полный экран.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...