1. 程式人生 > >Android開發-載入公用佈局(如公用標題欄)

Android開發-載入公用佈局(如公用標題欄)

前言:
目前越來越多的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);

分享完畢!