2013-05-04 5 views
0

У меня есть два TableLayout в моем приложении для Android. Я хочу, чтобы половина моего приложения была статичной и всегда отображалась, а другая - прокручиваемой. Когда я создаю и запускаю свое приложение на своем Android-телефоне, нижняя половина (TableLayout 2) не появляется вообще. Это мой xml-файл:TableLayout issue - Android

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

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" 
> 

<TableLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:id="@+id/tableLayout1" 
xmlns:tools="http://schemas.android.com/tools" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:scrollbarAlwaysDrawVerticalTrack="true" 
android:scrollbars="vertical" 
tools:context=".MainActivity" > 

<TextView 
    android:id="@+id/textView1" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:gravity="center" 
    android:text="Module 1" 
    android:textAppearance="?android:attr/textAppearanceLarge" /> 

<EditText 
    android:id="@+id/editText1" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:ems="10" 
    android:gravity="center" 
    android:inputType="number" 
    android:maxLength="3" > 

    <requestFocus /> 
</EditText> 

<TextView 
    android:id="@+id/textView2" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:gravity="center" 
    android:text="Module 2" 
    android:textAppearance="?android:attr/textAppearanceLarge" /> 

<EditText 
    android:id="@+id/editText2" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:ems="10" 
    android:maxLength="3" 
    android:inputType="number" /> 

<TextView 
    android:id="@+id/textView3" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:gravity="center" 
    android:text="Module 3" 
    android:textAppearance="?android:attr/textAppearanceLarge" /> 

<EditText 
    android:id="@+id/editText3" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:ems="10" 
    android:maxLength="3" 
    android:inputType="number" /> 

<TextView 
    android:id="@+id/textView4" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:gravity="center" 
    android:text="Module 4" 
    android:textAppearance="?android:attr/textAppearanceLarge" /> 

<EditText 
    android:id="@+id/editText4" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:ems="10" 
    android:maxLength="3" 
    android:inputType="number" /> 

<TextView 
    android:id="@+id/textView5" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:gravity="center" 
    android:text="Module 5" 
    android:textAppearance="?android:attr/textAppearanceLarge" /> 

<EditText 
    android:id="@+id/editText5" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:ems="10" 
    android:maxLength="3" 
    android:inputType="number" /> 

<TextView 
    android:id="@+id/textView6" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:gravity="center" 
    android:text="Module 6" 
    android:textAppearance="?android:attr/textAppearanceLarge" /> 

<EditText 
    android:id="@+id/editText6" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:ems="10" 
    android:maxLength="3" 
    android:inputType="number" /> 

<TextView 
    android:id="@+id/textView7" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:gravity="center" 
    android:text="Module 7" 
    android:textAppearance="?android:attr/textAppearanceLarge" /> 

<EditText 
    android:id="@+id/editText7" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:ems="10" 
    android:maxLength="3" 
    android:inputType="number" /> 

<TextView 
    android:id="@+id/textView8" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:gravity="center" 
    android:text="Module 8" 
    android:textAppearance="?android:attr/textAppearanceLarge" /> 

<EditText 
    android:id="@+id/editText8" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:ems="10" 
    android:maxLength="3" 
    android:inputType="number" /> 

</TableLayout> 
</ScrollView> 

<TableLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:id="@+id/tableLayout2" 
xmlns:tools="http://schemas.android.com/tools" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
tools:context=".MainActivity" > 

<TextView 
    android:id="@+id/textView9" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:gravity="center" 
    android:text="Total" 
    android:textAppearance="?android:attr/textAppearanceLarge" /> 

<EditText 
    android:id="@+id/editText9" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:ems="10" 
    android:enabled="false" 
    android:inputType="number" /> 

<TextView 
    android:id="@+id/textView10" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:gravity="center" 
    android:text="Classification" 
    android:textAppearance="?android:attr/textAppearanceLarge" /> 

<EditText 
    android:id="@+id/editText10" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:ems="10" 
    android:enabled="false" 
    android:inputType="number" /> 

<EditText 
    android:id="@+id/editText11" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:ems="10" 
    android:enabled="false" /> 

</TableLayout> 
</LinearLayout> 

Что я делаю неправильно? Извиняюсь, если это тривиально, я только начал развивать это сегодня, и я чрезвычайно новичок во всем этом.

ответ

1

Ваш ScrollView имеет android:layout_height="fill_parent", что означает, что он заполнит все LinearLayout, не оставляя места для вашей второй таблицы. Вы хотите, чтобы он заполнил все оставшееся пространство после того, как занято место фиксированной таблицы Layout 2.

Чтобы сделать это, вы хотите, чтобы вам LinearLayout «ы layout_weight атрибут:

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="0dp" 
    android:layout_weight="1" > 
    ... 
</ScrollView> 
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/tableLayout2" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" > 
    ... 
</TableLayout> 

Любые мнения без weight только займет положенное их высоту (в данном случае, мы хотим его wrap_content и занимать столько места, сколько необходимо). В то время как виды с весами будут разделять оставшуюся высоту на отношение веса (т. Е. Вес 1 и 2 вес будет 1/3 высоты и 2/3 высоты).

1

Вашего LinearLayout имеет android:orientation="vertical" но первый ребенок от него, то ScrollView, имеет android:layout_height="fill_parent", что означает, что он возьмет на себя всю высоту своего родителя, так что второй ребенок (tableLayout2) будет иметь никакого места не осталось, чтобы отобразить.

Возможно, у вас есть android:layout_height="wrap_content" как для ScrollView, так и для tableLayout2.