ナビバーのボタン配置変更

この記事の賞味期限は切れています。掲載内容や情報が古い可能性があります。

ナビゲーションバーのボタンの配置を変更します。
(これまたLMTを使っているので私にとっては不要なのですが)


SystemUI.apk\res\layout\navigation_bar.xml
このファイルでナビバーのボタン配置が指定されています。

最初の

<LinearLayout android:orientation=”horizontal” android:id=”@id/nav_buttons” android:clipChildren=”false” android:clipToPadding=”false” android:layout_width=”fill_parent” android:layout_height=”fill_parent” android:animateLayoutChanges=”true” android:directionality=”none”>

以下が縦画面用で、
最後の方の

<LinearLayout android:orientation=”vertical” android:id=”@id/nav_buttons” android:clipChildren=”false” android:clipToPadding=”false” android:layout_width=”fill_parent” android:layout_height=”fill_parent” android:animateLayoutChanges=”true” android:directionality=”none”>

以下が横画面用です。

ボタン配置は私のsystemUI.apkでは

            <com.android.systemui.statusbar.policy.KeyButtonView android:id=”@id/search” android:layout_width=”60.0dip” android:layout_height=”fill_parent” android:src=”@drawable/ic_sysbar_search” android:layout_weight=”0.0″ android:contentDescription=”@string/accessibility_search” systemui:keyCode=”84″ systemui:glowBackground=”@drawable/ic_sysbar_highlight” />
            <com.android.systemui.statusbar.policy.KeyButtonView android:id=”@id/back” android:layout_width=”80.0dip” android:layout_height=”fill_parent” android:src=”@drawable/ic_sysbar_back” android:layout_weight=”0.0″ android:contentDescription=”@string/accessibility_back” systemui:keyCode=”4″ systemui:glowBackground=”@drawable/ic_sysbar_highlight” />
            <com.android.systemui.statusbar.policy.KeyButtonView android:id=”@id/home” android:layout_width=”80.0dip” android:layout_height=”fill_parent” android:src=”@drawable/ic_sysbar_home” android:layout_weight=”0.0″ android:contentDescription=”@string/accessibility_home” systemui:keyCode=”3″ systemui:glowBackground=”@drawable/ic_sysbar_highlight” />
            <com.android.systemui.statusbar.policy.KeyButtonView android:id=”@id/power” android:visibility=”invisible” android:layout_width=”0.0dip” android:layout_height=”fill_parent” android:layout_weight=”0.0″ android:contentDescription=”@string/accessibility_power” />
            <com.android.systemui.statusbar.policy.KeyButtonView android:id=”@id/recent_apps” android:layout_width=”80.0dip” android:layout_height=”fill_parent” android:src=”@drawable/ic_sysbar_recent” android:layout_weight=”0.0″ android:contentDescription=”@string/accessibility_recent” systemui:glowBackground=”@drawable/ic_sysbar_highlight” />
            <com.android.systemui.statusbar.policy.KeyButtonView android:id=”@id/menu” android:layout_width=”60.0dip” android:layout_height=”fill_parent” android:src=”@drawable/ic_sysbar_menu” android:layout_weight=”0.0″ android:contentDescription=”@string/accessibility_menu” systemui:keyCode=”82″ systemui:glowBackground=”@drawable/ic_sysbar_highlight” />

このようになっています。
この状態だと

この画像のような並びになります。
使わないのでテキトーに変更したままです…。

各ボタンは

<com.android.systemui.statusbar.policy.KeyButtonView android:id=”@id/ボタンのID” android:layout_width=”60.0dip” android:layout_height=”fill_parent” android:src=”@drawable/ic_sysbar_ボタンのID” android:layout_weight=”0.0″ android:contentDescription=”@string/accessibility_ボタンのID” systemui:keyCode=”ボタンのキーコード” systemui:glowBackground=”@drawable/ic_sysbar_highlight” />

というふうになっています。
android:id=でボタンのID、android:src=でボタンの画像、
android:contentDescription=でボタンの説明テキストを指定しています。
特に重要なのがsystemui:keyCode=で、これがボタンの機能を指定しています。
キーコードはこのページで見られます。
framework-res.apk\res\values\attrs.xmlの<attr name=”keycode”>以下にも書かれています。

ボタンの下に
<com.android.systemui.statusbar.policy.KeyButtonView android:id=”@id/recent_apps” android:visibility=”invisible” android:layout_width=”0.0dip” android:layout_height=”fill_parent” android:layout_weight=”0.0″ android:contentDescription=”@string/accessibility_recent” />

というふうに追加するとボタンを長押ししたときの動作にすることができます。

たとえば電源キーはいらないから、と電源キーの部分を他のキーに変えるだけでは
コンパイル時にエラーがでる(public.xmlなどの編集が必要)はずなので、
面倒であれば長押しの部分に指定してやればいいと思います。

はてブ Pocket Mastodon タイトルとURLをコピー

当サイトで紹介するMODやアプリなどの内、システムファイルの改変やシステムに深く関わるものはroot化やリカバリが必須となります(root化の必要なしと明記している場合は除く)。導入はバックアップを取ってから自己責任で行ってください。また、技適の無い機器の使用は自己責任です。