1. ホーム
  2. android

[解決済み] ナビゲーションドローワを右から左に開くように設定する方法

2023-04-11 19:08:54

質問

まず最初に、この質問が以前ここに現れたことを知っていますが、何度やってもうまくいきません。 私はからの例で作業している Android開発者サイト .

メニューが左から右へ開くのではなく、右から左へ開くように設定したいのですが、どうすればよいでしょうか?また、メニューを開くボタンをアクションバーの右側に移動させたいと思っています。また、ここにいくつかの答えを赤で示した、例えば この回答では .

ビューやレイアウトの重心を変えようとするのですが、エラーが出ます。

絶対重力が LEFT であるドロワービューは見つかりませんでした。

私のコードの何が問題で、メニューを右から開くように設定し、アクションバーのボタンを右側に移動するために何を変更する必要があるかを把握するのを助けてもらえますか?

xml コードはここにあります。

<android.support.v4.widget.DrawerLayout 
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/drawer_layout"
    android:layout_gravity="right"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <FrameLayout
        android:id="@+id/content_frame"
        android:layoutDirection="rtl"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        />

    <ListView android:id="@+id/left_drawer"
        android:layout_width="200dp"
        android:layout_height="match_parent"
        android:layout_gravity="right"
        android:choiceMode="singleChoice"
        android:divider="@android:color/transparent"
        android:dividerHeight="10dp"
        android:background="#111"/>

</android.support.v4.widget.DrawerLayout>

どのように解決するのですか?

メインレイアウトで ListView の重力を右に設定します。

android:layout_gravity="right" 

また、あなたのコードで:

mDrawerToggle = new ActionBarDrawerToggle(this, mDrawerLayout,
            R.drawable.ic_drawer, R.string.drawer_open,
            R.string.drawer_close) {

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        if (item != null && item.getItemId() == android.R.id.home) {
            if (mDrawerLayout.isDrawerOpen(Gravity.RIGHT)) {
                mDrawerLayout.closeDrawer(Gravity.RIGHT);
            } 
            else {
                mDrawerLayout.openDrawer(Gravity.RIGHT);
            }
        }
        return false;
    }
};

うまくいくことを祈ります :)