我想在顶部和底部的每个活动中添加ImageButton
,button
和textview
。我想使用header and footer
。所以我想在每个Android Activity中添加页眉和页脚。我不知道该怎么做。我不需要如何编写页眉或页脚的源代码。我想知道的是我必须定义页眉和页脚意味着我需要在每个xml文件中添加页眉和页脚,还是我需要定义两个header.xml
或footer.xml
并使用这些每个其他xml文件中的xml文件。或者是否有任何其他方式意味着使用该活动的java文件中的引用。任何帮助赞赏。
答案 0 :(得分:9)
定义两个单独的文件header.xml
和footer.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 include和here 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>