在所有活动android中创建粘性页脚

时间:2012-10-19 15:53:40

标签: android

您好我试图创建一个粘性页脚,将在我的应用程序中的每个活动中显示,我已经有头文件我使用windows feautre自定义标题栏来实现这一点,所以我的标题总是显示在我的所有活动中。

我有:

  1. 使用列表视图的活动,使用lazyadapter从xml文件中获取数据。
  2. 基本音频播放器的活动。
  3. 我想创建一个粘性页脚,我不仅会在列表视图底部滚动时显示:

    enter image description here

    我已经有了这个:

    footer.xml

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical" >
           <TextView
            android:text="Footer"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content" 
            android:layout_gravity="bottom"/>
    
    
    </LinearLayout>
    

    在我使用的listview活动中:

    View footerView = ((LayoutInflater) this.getSystemService(Context.LAYOUT_INFLATER_SERVICE)).inflate(R.layout.footer, null, false);
            list.addFooterView(footerView);
    

    页脚显示但是如果我滚动到listview的末尾是不粘的,我可以使用哪种方法来创建粘性页脚?

    感谢。

    编辑:

    main.xml中

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:orientation="vertical">
    
        <ListView
            android:id="@+id/list"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:divider="#b5b5b5"
            android:dividerHeight="1dp"
            android:fadingEdge="none"
            android:listSelector="@drawable/list_selector" />  
    
    </LinearLayout>
    

    list_row.xml:

    <?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="wrap_content"
        android:background="@drawable/list_selector"
        android:orientation="horizontal"
        android:padding="5dip" >
    
        <!--  ListRow Left sied Thumbnail image -->
        <LinearLayout android:id="@+id/thumbnail"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:padding="3dip"
            android:layout_alignParentLeft="true"
    
            android:layout_marginRight="5dip">
          <!-- android:background="@drawable/image_bg" -->
            <ImageView
                android:id="@+id/miniatura"
                android:layout_width="80dip"
                android:layout_height="50dip"
                android:src="@drawable/rihanna"/>
    
        </LinearLayout>
    
        <!-- Title Of Song-->
    
        <TextView
            android:id="@+id/nombre"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignTop="@+id/thumbnail"
            android:layout_marginTop="8dp"
            android:layout_toRightOf="@+id/thumbnail"
            android:text="Rihanna Love the way lie"
            android:textColor="#040404"
            android:textSize="15dip"
            android:textStyle="bold"
            android:typeface="sans" />
    
        <!-- Artist Name -->
        <TextView
            android:id="@+id/web"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_below="@id/nombre"
            android:textColor="#343434"
            android:textSize="10dip"
            android:layout_marginTop="1dip"
            android:layout_toRightOf="@+id/thumbnail"
            android:text="Just gona stand there and ..." />
    
        <!-- Rightend Duration -->
    
        <TextView
            android:id="@+id/shoutcast"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentRight="true"
            android:layout_alignTop="@id/nombre"
            android:layout_marginRight="5dip"
            android:gravity="right"
            android:text="5:45"
            android:textColor="#10bcc9"
            android:textSize="10dip"
            android:textStyle="bold"
            android:visibility="gone" />
        <TextView
            android:id="@+id/logo"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentRight="true"
            android:layout_alignTop="@id/shoutcast"
            android:layout_marginRight="5dip"
            android:gravity="right"
            android:text="5:45"
            android:textColor="#10bcc9"
            android:textSize="10dip"
            android:textStyle="bold"
            android:visibility="gone" />
    
         <!-- Rightend Arrow -->
         <ImageView android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@drawable/arrow"
            android:layout_alignParentRight="true"
            android:layout_centerVertical="true"/>
    
    </RelativeLayout>
    

2 个答案:

答案 0 :(得分:3)

您不希望页脚位于列表中,因为它只会显示在列表的底部。相反,你希望它在根元素内是另一个级别。页眉和页脚高度应设置为包装内容,以便它们只占用所需的空间,并且列表应设置为height = 0dp weight = 1,以便占用所有剩余的可用空间。看看我为main.xml提供的替代品。您应该在.xml布局文件中使用页脚(如果可能),并尝试避免在代码中执行此操作。

主:

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

    <ListView
        android:id="@+id/list"
        android:layout_width="fill_parent"
        android:layout_height="0dp"
        android:layout_weight="1"
        android:divider="#b5b5b5"
        android:dividerHeight="1dp"
        android:fadingEdge="none"
        android:listSelector="@drawable/list_selector" />  

    <include layout="footer"/>

</LinearLayout>

页脚:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical">

    <TextView
        android:text="Footer"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" 
        android:layout_gravity="bottom"/>

</LinearLayout>

答案 1 :(得分:2)

在XML包装中,其他人在ScrollView中查看(listview,ect ...)