9

ActionBar のホーム ボタンを右側に設定できますか? (android.R.id.home)

言語が右から左へのタイピングを使用しているため、ホームボタンの位置を変更したいと考えています。

出来ますか?はいの場合、どうすればそれができるか教えてください。

いいえの場合、右側に ActionBarDrawerToggle を設定するにはどうすればよいですか?

4

5 に答える 5

1

このようなアクション バーを作成することはできますが、メニューを膨らませるよりも少し複雑です。onCreateOptionsMenu() メソッドで作成されたメニューは、常に右揃え、分割アクション バーに配置、またはメニュー キーの下に非表示になります。

アクション バーに 2 つのメニュー項目 (左端と右端に 1 つずつ) のみを含める場合は、アクション バーにカスタム ビューを作成する必要があります。

カスタム ビュー レイアウトは次のようになります。

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
                android:layout_width="fill_parent"
                android:layout_height="fill_parent">
    <ImageButton android:src="@drawable/ic_menu_item1"
                 android:background="?attr/actionBarItemBackground"
                 android:layout_width="?attr/actionBarSize"
                 android:layout_height="match_parent"
                 android:scaleType="centerInside"
                 android:id="@+id/item1"
                 android:layout_alignParentLeft="true"
                 android:layout_alignParentTop="true"/>

    <ImageButton android:src="@drawable/ic_menu_item2"
                 android:background="?attr/actionBarItemBackground"
                 android:layout_width="?attr/actionBarSize"
                 android:layout_height="match_parent"
                 android:scaleType="centerInside"
                 android:id="@+id/item2"
                 android:layout_alignParentRight="true"
                 android:layout_alignParentTop="true"/>
</RelativeLayout>

カスタム ビューを使用するテーマで定義します。テーマには以下が含まれている必要があります。

<style name="MyTheme" parent="@style/Theme.Sherlock">
    <item name="actionBarStyle">@style/MyActionBarStyle</item>
    <item name="android:actionBarStyle">@style/MyActionBarStyle</item>
</style>

<style name="MyActionBarStyle" parent="@style/Widget.Sherlock.ActionBar">
    <item name="displayOptions">showCustom</item>
    <item name="android:displayOptions">showCustom</item>
</style>

アクティビティ (またはフラグメント) でカスタム ビューを設定します。

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    ActionBar ab = getSherlock().getActionBar();
    LayoutInflater li = LayoutInflater.from(this);
    View customView = li.inflate(R.layout.my_custom_view, null);
    ab.setCustomView(customView);

    ImageButton ibItem1 = (ImageButton) customView.findViewById(R.id.item1);
    ibItem1.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            // ...
        }
    });

    ImageButton ibItem2 = (ImageButton) customView.findViewById(R.id.item2);
    ibItem2.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            // ...
        }
    });
}
于 2013-07-24T16:17:18.060 に答える
0

これがあなたが探しているものかどうかは完全にはわかりませんが、アクションバーのドロップダウンメニューの下にホームボタンを表示することができます (3 つの縦の点のアイコン)

<?xml version="1.0" encoding="utf-8"?>

<menu xmlns:android="http://schemas.android.com/apk/res/android">

    <item
            android:id="@+id/ic_home"
            android:orderInCategory="1"
            android:showAsAction="never"
            android:title="Home"/>

</menu>

「 android:showAsAction="never" " と設定すると、ドロップダウン メニューの下に表示されますが、Android Studio エミュレーターではおそらくこれを見ることができません (少なくとも、エミュレーターで見たことはありません)。 Android Studio)、Eclipse については不明です。

于 2013-07-24T16:11:22.027 に答える
0

Android は最近、右から左への ActionBar のサポートを獲得しましたが、API 17 でのみ使用できます。マニフェストがandroid:supportsRtl="true"設定されている場合、デフォルトでこれが行われます。

于 2013-07-24T15:58:31.667 に答える