2013-04-08 2 views
1

У меня есть таблица в этой таблице. Я определил tablerow с 4 edittexts в качестве заголовков столбцов.исправлено в первый раз TableRow android

Моя проблема в том, что я хочу сделать эту статическую строку неподвижной, поэтому, пока я прокручиваю экран вниз, позиция этой строки не изменяется.

Я загружаю другие строки динамически из БД.

спасибо за помощь!

это мой XML-код:

<HorizontalScrollView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/horizontalScrollView1" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:background="@drawable/background"> 
    <ScrollView 
     android:id="@+id/scrollViewPhysicalExam" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" > 
     <LinearLayout 
      android:orientation="vertical" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent"> 
      <TableLayout 
        android:id="@+id/TLArchiveHeader" 
        android:layout_height="wrap_content" 
        android:layout_width="match_parent"> 

        <TableRow style="@style/HeaderRow"> 

         <TextView 
         style="@style/HeaderText" 
         android:layout_width="200dp" 
         android:text="Owner name"/> 

        <TextView 
         style="@style/HeaderText" 
         android:layout_width="200dp" 
         android:text="Phone" /> 

        <TextView 
         style="@style/HeaderText" 
         android:layout_width="200dp" 
         android:text="Address" /> 

        <TextView 
         style="@style/HeaderText" 
         android:layout_width="200dp" 
         android:text="Mail" /> 
        <TextView 
         style="@style/HeaderText" 
         android:layout_width="200dp" 
         android:text="Fax" /> 

       </TableRow> 

      </TableLayout> 

     </LinearLayout> 
    </ScrollView> 
</HorizontalScrollView> 
+0

Прежде всего ... почему вы используете scrollview внутри horizontalscrollview? во-вторых, если вы не хотите, чтобы конкретный вид не прокручивался, просто поставьте его вне scrollview. – hardartcore

+0

Я также пытаюсь реализовать это с 2 таблицами, но он не работает хорошо – user2235615

+0

у вас есть образ макета, который вы пытаетесь достичь, поэтому я могу дать вам правильный способ его создания. – hardartcore

ответ

3

Прежде всего, Почему и нужно LinearLayout внутри ScrollView? TableLayout будет распространять строки по вертикали без LinearLayout.

Во-вторых - тонны представлений Значительно замедление работы приложения. Рассмотрите возможность замены TableLayout на .. может быть ListView или код для вашего собственного компонента. Как я понимаю, вам нужна простая таблица с текстовыми полями - не так сложно реализовать единый, быстрый и простой в использовании компонент.

Третье - решение - просто поместить строку заголовка вне ScrollView, как это:

<HorizontalScrollView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/horizontalScrollView1" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:background="@drawable/background"> 

    <TableLayout 
     android:id="@+id/TLArchiveHeader" 
     android:layout_height="wrap_content" 
     android:layout_width="match_parent"> 
     <TableRow style="@style/HeaderRow"> 
      <TextView 
      style="@style/HeaderText" 
      android:layout_width="200dp" 
      android:text="Owner name"/> 
      <TextView 
       style="@style/HeaderText" 
       android:layout_width="200dp" 
       android:text="Phone" /> 
      <TextView 
       style="@style/HeaderText" 
       android:layout_width="200dp" 
       android:text="Address" /> 
      <TextView 
       style="@style/HeaderText" 
       android:layout_width="200dp" 
       android:text="Mail" /> 
      <TextView 
       style="@style/HeaderText" 
       android:layout_width="200dp" 
       android:text="Fax" /> 
     </TableRow> 
    </TableLayout> 
    <ScrollView 
     android:id="@+id/scrollViewPhysicalExam" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent"> 
     <TableLayout 
      android:id="@+id/TLArchiveRowPlaceholder" 
      android:layout_height="wrap_content" 
      android:layout_width="match_parent"> 
     </TableLayout> 
    </ScrollView> 
</HorizontalScrollView> 

Добавить строки в TLArchiveRowPlaceholder.

Но в этом случае вы должны иметь фиксированную ширину столбца. Или обновите ширину столбца заголовка после каждого обновления основной таблицы, чтобы не сгладить заголовки.

Надеюсь, это поможет.

Мой плохой. Почему ответы были в комментариях? Не читал их раньше =)

+0

lol Я не знаю, как добавить новые комментарии, как вы. – user2235615