Reputation:
i am trying to make a layout like this:
actionbar
====================
txtViewTitle
--------------------
listview item1
listview item2
listview item3
........scroll scroll scroll
...at the end of all the items:
-----------------
txtViewFooter
==================
linearlayout of buttons [always visible at the bottom]
-------------------------------
the part between the ==========s should be scrollable
here's my code, it works except for txtViewFooter which is displayed if the list is short enough to accomodate in part of the screen. but not displayed if list is longer and requores scroling
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/d_layout"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<TextView
android:id="@+id/txtViewTitle"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:padding="8dp"
android:background="#eeeeee"
android:gravity="center|center"
android:layout_alignParentTop="true"
style="?android:listSeparatorTextViewStyle"/>
<View
android:layout_width="fill_parent"
android:layout_height="0.1dp"
android:layout_below="@+id/txtViewTitle"
android:id="@+id/separator"
android:visibility="visible"
android:background="@android:color/darker_gray"/>
<ListView
android:layout_height="match_parent"
android:layout_below="@+id/separator"
android:id="@+id/my_list"
android:listSelector="@android:color/transparent"
android:smoothScrollbar="true"
android:layout_width="fill_parent"
android:background="@android:color/transparent"
android:textColor="#000000"
android:dividerHeight="0dp"
android:cacheColorHint="@android:color/transparent">
</ListView>
<TextView
android:id="@+id/txtViewFooter"
android:layout_below="@+id/my_list"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="8dp"
android:textStyle="italic"
/>
<View
android:layout_width="fill_parent"
android:layout_height="0.1dp"
android:layout_above="@+id/bottom_menu"
android:id="@+id/separator2"
android:visibility="visible"
android:background="@android:color/darker_gray"/>
<LinearLayout android:id="@+id/bottom_menu"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:layout_alignParentBottom="true"
android:background="#eeeeee">
<include layout="@layout/footer_menu" />
</LinearLayout>
Upvotes: 4
Views: 3202
Reputation: 51411
Use
ListView.addFooterView(View v)
to add a footer to your ListView
. You do not need to define the footer in .xml
Example:
TextView tv = new TextView(Context);
tv.setText("I am a footer")
ListView.addFooterView(tv);
Inflate from .xml:
View footer = LayoutInflater.from(Context).inflate(R.layout.your_footer_layout, null);
ListView.addFooterView(footer);
Make sure you add your footer or header View
before you add other items to the list.
Upvotes: 10