前言:
目前越来越多的activity页面都会在页面的头部加载一个标题栏,为了减少重复代码,修改样式方便。所以就简单的来说说如何在当前页面的头部加载一个公用的布局头部文件。
效果如下图:
具体实现如下:
1,新建一个布局文件 public_header 布局文件。
<?xml version="1.0" encoding="utf-8"?>
<!-- 顶部信息栏 -->
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/layout_topmenu"
android:layout_width="fill_parent"
android:layout_height="45dp"
android:layout_alignParentTop="true"
android:background="@color/white" >
<!-- 左手边按钮,设置内部重心偏向为垂直居中 -->
<Button
android:id="@+id/top_menu_left"
android:layout_width="45dp"
android:layout_height="45dp"
android:layout_alignParentLeft="true"
android:layout_centerVertical="true"
android:layout_gravity="left"
android:background="@color/color_main"
android:paddingLeft="7dp"
android:textColor="@color/white" />
<!-- 文本标题控件,设置布局为居中 -->
<TextView
android:id="@+id/top_menu_title"
android:layout_width="160dp"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:ellipsize="marquee"
android:focusable="true"
android:focusableInTouchMode="true"
android:gravity="center"
android:marqueeRepeatLimit="marquee_forever"
android:singleLine="true"
android:textColor="@color/screening_price"
android:textSize="18sp" />
<!-- 按钮控件,设置布局为偏右 -->
<Button
android:id="@+id/top_menu_right"
android:layout_width="45dp"
android:layout_height="45dp"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:background="@color/color_main"
android:textColor="@color/white" />
<View
android:layout_width="fill_parent"
android:layout_height="0.5dp"
android:layout_alignParentBottom="true"
android:background="#cccccc" >
</View>
</RelativeLayout>
2,如何在其他布局文件引用
<include layout="@layout/public_header" />
3,自定义一个TopMenuHeader文件
public class TopMenuHeader {
// 顶部菜单左边按钮
public Button topMenuLeft;
// 顶部菜单右边按钮
public Button topMenuRight;
// 顶部菜单文字
public TextView topMenuTitle;
public TopMenuHeader(View v) {
// 右边按钮
topMenuRight = (Button) v.findViewById(R.id.top_menu_right);
// 左边按钮
topMenuLeft = (Button) v.findViewById(R.id.top_menu_left);
// 顶部中间文字
topMenuTitle = (TextView) v.findViewById(R.id.top_menu_title);
}
}
4,在activity引用。
// 顶部设置
TopMenuHeader topMenu = new TopMenuHeader(getWindow().getDecorView());
topMenu.topMenuTitle.setText("首页");
topMenu.topMenuTitle.setTextColor(Color.parseColor("#2fcfc9"));
topMenu.topMenuRight.setVisibility(View.GONE);
topMenu.topMenuLeft.setVisibility(View.GONE);
分享完毕!