如何在android中为每个活动添加页眉和页脚

时间:2012-04-24 10:07:40

标签: android xml header footer

我想在顶部和底部的每个活动中添加ImageButtonbuttontextview。我想使用header and footer。所以我想在每个Android Activity中添加页眉和页脚。我不知道该怎么做。我不需要如何编写页眉或页脚的源代码。我想知道的是我必须定义页眉和页脚意味着我需要在每个xml文件中添加页眉和页脚,还是我需要定义两个header.xmlfooter.xml并使用这些每个其他xml文件中的xml文件。或者是否有任何其他方式意味着使用该活动的java文件中的引用。任何帮助赞赏。

6 个答案:

答案 0 :(得分:9)

定义两个单独的文件header.xmlfooter.xml,然后使用

`

<include layout="@layout/footer"/>

答案 1 :(得分:4)

请看这个链接:

这与你的问题完全一样。如果您想要这些页眉和页脚,您应该构建一个自定义视图并在您的应用程序中使用它。您可以使用操作栏之类的内容作为标题。

答案 2 :(得分:2)

“我是否需要定义两个header.xml或footer.xml并在每个其他xml文件中使用这些xml文件”

是的,据我所知,这是最好的方法。您可以使用include xml标记在其他布局文件中包含其他.xml布局文件。像:

...
<include layout="@layout/header"/>
...
<include layout="@layout/footer"/>
...

答案 3 :(得分:2)

Android本身没有Header和Footer的概念。但是,您可以在布局中定义概念页眉和页脚一次,然后在其他布局中多次使用它们,只需使用(例如)调用它们:

<include layout="@layout/header"/>

您可以让本示例更好地了解如何在整个应用程序中重用布局。

http://developer.android.com/training/improving-layouts/reusing-layouts.html

答案 4 :(得分:1)

您有两种选择。包含和合并。

请详细了解这些选项here for includehere for merging

答案 5 :(得分:1)

This is best example for Common Header Footer in All Activities


BaseActiivty.java
=================



 public class BaseActivity extends FragmentActivity {

    RelativeLayout mRelativeLayout;
    FrameLayout frame_container;
    TextView header_txt,footer_txt;

    @Override
    protected void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);


    }

    @Override
    public void setContentView(int layoutResID)

    {
        mRelativeLayout = (RelativeLayout) getLayoutInflater().inflate(R.layout.activity_base, null);
        frame_container = (FrameLayout) mRelativeLayout.findViewById(R.id.frame_container);
        // set the drawer dialog_view as main content view of Activity.
        setContentView(mRelativeLayout);
        // add dialog_view of BaseActivities inside framelayout.i.e. frame_container
        getLayoutInflater().inflate(layoutResID, frame_container, true);

        header_txt = (TextView) findViewById(R.id.header_txt);
        footer_txt = (TextView) findViewById(R.id.footer_txt);

    }
}


   MainActivity.java
   =================

public class MainActivity extends BaseActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }





activity_base.xml
=================





<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/content_base"
    android:layout_width="match_parent"
    android:layout_height="match_parent">


    <RelativeLayout
        android:id="@+id/header_RL"
        android:layout_width="match_parent"
        android:layout_height="50dp"
        android:background="@color/colorAccent">

        <TextView
            android:id="@+id/header_txt"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:textSize="30dp"
            android:gravity="center"
            android:text="Header"/>

    </RelativeLayout>


    <FrameLayout
        android:id="@+id/frame_container"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_above="@+id/footer_RL"
        android:layout_below="@+id/header_RL">

    </FrameLayout>


    <RelativeLayout
        android:id="@+id/footer_RL"
        android:layout_width="match_parent"
        android:layout_height="50dp"
        android:layout_alignParentBottom="true"
        android:background="@color/colorAccent">

        <TextView
            android:id="@+id/footer_txt"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:textSize="30dp"
            android:gravity="center"
            android:text="Footer"/>

    </RelativeLayout>

</RelativeLayout>





activity_main.xml
==================


<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent">


        <TextView
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:gravity="center"
            android:text="Hello World!"
            android:textSize="30dp" />

    </LinearLayout>
</RelativeLayout>