0

ナビゲーション ドロワー エフェクトを作成したいのですが、ドロワーが右からスライドするのではなく、コードを作成しました。スライド メニューが左側にある場合、コードは完璧に機能します。これは私の Java コードです。

DrawerLayout drawerLayout;
View drawerView;
View drawerContent;
View mainContent;
ActionBarDrawerToggle toggle;
@Override
protected void onCreate(Bundle savedInstanceState)
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main_activity);

    drawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
    drawerView = findViewById(R.id.drawer_view);
    drawerContent = findViewById(R.id.drawer_content);
    mainContent = findViewById(R.id.main_content);
    toggle = new ActionBarDrawerToggle(
            TestLayout.this,
            drawerLayout,
            R.drawable.ic_drawer,
            R.string.u_drawer_call_center,
            R.string.u_drawer_call_center
    ) {

        @Override
        public void onDrawerSlide(View drawer, float slideOffset)
        {
            super.onDrawerSlide(drawer, slideOffset);

            drawerContent.setX(drawerView.getWidth() * (1 - slideOffset));
            mainContent.setX(drawerView.getWidth() * slideOffset);

        }
        public void onDrawerClosed(View view) {
        }

        public void onDrawerOpened(View drawerView) {

        }
    };
    drawerLayout.setDrawerListener(toggle);
    drawerLayout.closeDrawer(drawerView);
    drawerContent.setX(drawerView.getWidth());
}

私が言ったように、スライドメニューが左側にあるときにメインコンテンツを移動できます.しかし、今はスライドメニューの右側が必要です.xmlコードを書き直しましたが、メインコンテンツを移動できません.これは私のxmlコードです.

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

<FrameLayout android:id="@+id/main_content"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#cccccc" />

<LinearLayout android:id="@+id/drawer_view"
    android:layout_width="240dp"
    android:layout_height="match_parent"
    android:layout_gravity="right">

    <LinearLayout android:id="@+id/drawer_content"
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <ImageView android:id="@+id/image"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:src="@drawable/ic_launcher" />

    </LinearLayout>

</LinearLayout>

ソースコードも変更しました

drawerContent.setX(drawerLayout.getWidth() - (drawerView.getWidth() * (1 - slideOffset)));
mainContent.setX(drawerLayout.getWidth() - (drawerView.getWidth() *   slideOffset));

しかし、このコードは機能しません。右側にスライド メニューがある場合、コードの使用方法がわかりません。誰かが解決策を知っているなら、私を助けてください

4

1 に答える 1