2014-01-04 4 views
0

Я создал список, добавляющий textview в верхний и нижний колонтитулы. Он отображается только при прокрутке вверх и вниз по списку. Мне бы хотелось, чтобы это было плавающим. Как я это делаю? действительно ценю любую помощь. Спасибо в Advance.float header и footer в listview

  View header = getLayoutInflater().inflate(R.layout.header, null); 

      list.addHeaderView(header); 
+0

Я обернуть мой ListView в LinearLayout, что это завернутый в relativelayout. таким образом у меня могут быть текстовые и/или кнопки сверху или снизу, и список прокручивается между ними. Я делаю это в XML, если вам нужен код. –

+0

yup как Commonsware сказал. – jason

+0

@Bill Gary: Я переношу свой список в RelativeLayout (** нет необходимости в дополнительном LinearLayout **). Таким образом, у меня могут быть текстовые изображения и/или кнопки сверху или снизу, и список прокручивается между ними. Я делаю это в XML. Нет шутки - я всегда так делаю. Кроме того, с помощью ExpandableListViews –

ответ

1
<?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 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:layout_above="@+id/linearLayout1" 
    android:layout_below="@+id/tvListHeader" 
    android:orientation="vertical" > 

    <ListView 
     android:id="@+id/listView1" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" /> 

    <TextView 
     android:id="@android:id/empty" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="@string/no_notes"/> 
</LinearLayout> 

<LinearLayout 
    android:id="@+id/linearLayout1" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:layout_alignParentBottom="true" 
    android:gravity="center" 
    android:orientation="horizontal" > 

    <Button 
     android:id="@+id/bListBack" 
     android:layout_width="200dp" 
     android:layout_height="wrap_content" 
     android:onClick="onClick" 
     android:text="Back" /> 
</LinearLayout> 

<TextView 
    android:id="@+id/tvListHeader" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:layout_marginBottom="10dp" 
    android:gravity="center" 
    android:text="Text" 
    android:textAppearance="?android:attr/textAppearanceMedium" 
    android:textColor="#FF0000" 
    android:textStyle="bold" /> 

2

Я хотел бы, чтобы быть floating.How мне делать это?

Если по «плавающей» вы имеете в виду «фиксировано, не двигаясь, выше и ниже ListView», решение не ставить их в ListView. Используйте LinearLayout, чтобы разместить верхний и нижний колонтитулы чуть выше и чуть ниже ListView.

Если у вас есть другое определение «плавающий», отредактируйте свой вопрос, чтобы больше объяснить, и я могу удалить этот ответ.

+0

Нет, это именно то, о чем я говорил. Я попробовал, что тоже искал другой подход к тому же. Спасибо, дайте мне знать, есть ли другой способ. – jason

1

Таким образом, если по «плавающей» вы имеете в виду фиксированной, вот мой способ сделать это:

<?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" 
    > 
    <TextView 
     android:id="@+id/txtQuestion" 
     android:background="@color/blue_gray_semi" 
     android:layout_alignParentTop="true" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:minHeight="48dp" 
     android:padding="8dp" 
     android:textColor="@color/white" 
     android:textSize="16sp" 
     android:textStyle="bold" 
     android:shadowColor="@color/black" 
     android:shadowRadius="1" 
     android:shadowDx="1" 
     android:shadowDy="1" 
    /> 
    <TextView 
     android:id="@+id/txtPosition" 
     android:background="@color/blue_gray_semi" 
     android:layout_alignParentBottom="true" 
     android:layout_width="fill_parent" 
     android:layout_height="48dp" 
     android:gravity="center" 
     android:padding="0dp" 
     android:textColor="@color/white" 
     android:textSize="24sp" 
     android:textStyle="bold" 
    /> 
    <ListView 
     android:id="@+id/lvwAnswers" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:layout_below="@id/txtQuestion" 
     android:layout_above="@id/txtPosition" 
     android:listSelector="@drawable/list_item_colors" 
     android:background="@drawable/list_border" 
     style="@style/ListViews" 
    /> 
</RelativeLayout> 

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

Теперь вы заметите, что TextView определены перед списком ListView.
Это потому, что ListView может ссылаться на них в своих «выше» и «ниже» атрибутах.
Если вы должны были использовать LinearLayout, вместо этого, вы должны определить их сверху вниз, как они должны быть отображены (заголовок, ListView и Footer)

Смежные вопросы