ScrollView только на части экрана в Android - PullRequest
0 голосов
/ 22 февраля 2011

У меня экран с двумя частями. Я хочу, чтобы верхний был статичным, а нижний с TableLayout прокручиваемым. Я попытался добавить ScrollView в нижнюю часть экрана, но при создании прокрутки TableLayout верхняя часть исчезает.

Как объединить верхнюю статическую часть с прокручиваемой нижней частью?

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:id="@+id/LinearLayout01"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="horizontal"
    android:layout_weight="9" 
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="@drawable/title_shape">  
    <Button 
        android:id="@+id/btnBack" 
        android:text="@string/titleCreateTest"
        style="@style/Bar_buttonBack">
    </Button>
    <TextView android:layout_weight="6" 
        android:id="@+id/titleFlashcard" 
        android:text="@string/titleStatistic" 
        style="@style/TitleStyle">
    </TextView> 
</LinearLayout>
 <ScrollView
  android:id="@+id/ScrollView1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content">
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:id="@+id/LinearLayout2"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content">
<TableLayout 
    android:id="@+id/table_layout"
    style="@style/TableLayoutStyle">
 <TableRow 
     android:id="@+id/table_row1">
    <TextView
            android:id="@+id/tv1"
            android:text="@string/tvRecord" 
            style="@style/TableRowStyle"/>
    <TextView
            android:id="@+id/tv1v"
            style="@style/TableRowStyleColumn2"/>
  </TableRow>
  <View
    style="@style/TableRowSeparator"/>
     <TableRow
     android:id="@+id/table_row2">
        <TextView
            android:id="@+id/tv2"
            android:text="@string/tvMedium" 
            style="@style/TableRowStyle"/>
        <TextView
            android:id="@+id/tv2v"
            style="@style/TableRowStyleColumn2"/>
    </TableRow>
      <View
    style="@style/TableRowSeparator"/>
    <TableRow
    android:id="@+id/table_row3">
        <TextView
            android:id="@+id/tv3"
            android:text="@string/tvWorst" 
            style="@style/TableRowStyle"/>
        <TextView
            android:id="@+id/tv3v"
            style="@style/TableRowStyleColumn2"/>
    </TableRow>
    </TableLayout> 
   <TableLayout 
    android:id="@+id/table_layout2"
    style="@style/TableLayoutStyle">
        <TableRow
          android:id="@+id/table_row4">
          <TextView
            android:id="@+id/tvDate"
            style="@style/TableRowStyle"/>
            <TextView
            android:id="@+id/tvResult"
            style="@style/TableRowStyleColumn2"/>
     </TableRow>
    <View
    android:id="@+id/rowseparator"
    style="@style/TableRowSeparator"/>
</TableLayout>
</LinearLayout>
</ScrollView>
</LinearLayout>

1 Ответ

1 голос
/ 22 февраля 2011

Использование fill_parent и android:weight может быть сложным.Об этом шла дискуссия, но я не могу ее найти.

Поскольку ваш второй линейный макет (тот, что имеет кнопку и текстовое представление) установлен на fill_parent, я ожидаю, что он поглотит все пространство вкорневой макет, но с установленным весом он ведет себя как «обратный вес» и позволяет ScrollView занять все пространство.

Было бы лучше дать верхней части wrap_content по высоте,и fill_parent к ScrollView.Если вы предпочитаете, вы можете установить высоту верхней части = wrap_content и weight = 0, а высоту нижней части = 0 и weight = 1, чтобы он занимал все оставшееся пространство.

Если вы установите ScrollViewдо wrap_content, он будет широким (или высоким) столько же, сколько и его содержимое.Это прокрутка или просто конец экрана?

LinearLayout внутри ScrollView бесполезен, если только вы не планируете добавить что-то еще.

Последнее замечание:xmlns:android="...." должен оставаться только в корневом элементе.

Фреймворк Android часто известен как проблема, надеюсь, это помогло.

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