[Android] アクションバーを画面下側から表示させてみました

| トラックバック(0) |

Say Hello to the Action Bar !

ということで、アクションバー(Action Bar)を画面下側から表示させてみました。

 

google_reader.pnggmail.png

ご覧のとおり、通常は画面上側から表示されるアクションバーが画面下側から表示されるため、片手で操作しやすくなります^^

※上図左、Google Reader アプリの場合、「お気に入り(スター)」ボタンが(片手持ちの)親指で届くため、操作性が向上!

※上図右、GMail アプリのようにスプリットアクションバーがある場合には、その上に表示されます

 

ちなみに、twicca だと、こんな感じ。

twicca.png

4.7 インチの大画面 Galaxy Nexus であっても片手持ちで、タイトルバーダブルタップ(リストビューの先頭へ移動)できます!

 

変更方法

android-4.0.3_r1 \ frameworks \ base \ core \ res \ res \ layout 下にある全ての screen*.xml に対し、 

アプリのコンテンツ領域である FrameLayout (android:id="@android:id/content")の定義位置を上部に移動するだけ。

以下、1 ファイルだけサンプル。

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:fitsSystemWindows="true">
<!-- vvv After vvv -->
    <FrameLayout android:id="@android:id/content"
        android:layout_width="match_parent" 
        android:layout_height="0dip"
        android:layout_weight="1"
        android:foregroundGravity="fill_horizontal|top"
        android:foreground="?android:attr/windowContentOverlay" />
<!-- ^^^ After ^^^ -->

    <!-- Popout bar for action modes -->
    <ViewStub android:id="@+id/action_mode_bar_stub"
              android:inflatedId="@+id/action_mode_bar"
              android:layout="@layout/action_mode_bar"
              android:layout_width="match_parent"
              android:layout_height="wrap_content" />
    <FrameLayout
        android:layout_width="match_parent" 
        android:layout_height="?android:attr/windowTitleSize"
        style="?android:attr/windowTitleBackgroundStyle">
        <TextView android:id="@android:id/title" 
            style="?android:attr/windowTitleStyle"
            android:background="@null"
            android:fadingEdge="horizontal"
            android:gravity="center_vertical"
            android:layout_width="match_parent"
            android:layout_height="match_parent" />
    </FrameLayout>
<!-- vvv Brefore vvvv -->
<!--
    <FrameLayout android:id="@android:id/content"
        android:layout_width="match_parent" 
        android:layout_height="0dip"
        android:layout_weight="1"
        android:foregroundGravity="fill_horizontal|top"
        android:foreground="?android:attr/windowContentOverlay" />
-->
<!-- ^^^ Brefore ^^^ -->
</LinearLayout>

 

あわせて読みたい

トラックバック(0)

トラックバックURL: http://mt.adakoda.com/mt-tb.cgi/569

2016年8月

  1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31