為了給使用者有一致性的體驗,在 Android 環境上,實作 iOS UINavigationController 效果。
實作的方式很...直觀,就是每個 Activity 最上頭都擺在一個區域(header)來達成啦 XD
例如 header.xml:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="50dp"
android:background="@drawable/background">
<FrameLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:gravity="center"
android:background="@null">
<TextView
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:text="@string/title"
android:gravity="center"
android:textAppearance="?android:attr/textAppearanceMedium" />
<ImageButton
android:id="@+id/btn_right"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/btn_right"
android:background="@null"
android:contentDescription="@null"
android:layout_gravity="center_vertical|right"/>
</FrameLayout>
</LinearLayout>
而其他的 Activity layout 可以在開頭就用類似方式 include 進來:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:orientation="vertical">
<include android:id="@+id/header"
layout="@layout/header"
android:layout_height="wrap_content"
android:layout_width="fill_parent"/>
…
</LinearLayout>
沒有留言:
張貼留言