如何在libgdx GL表面上创建DrawerLayout叠加层?

问题描述 投票:0回答:1

我的GameActivity代码:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
    // Activity setup
    setContentView(R.layout.main);

    if (savedInstanceState == null) {
        // Load OpenCV Camera Fragment
        camera = new CameraFr();
        getSupportFragmentManager().beginTransaction()
                .add(R.id.fr_camera, camera)
                .commit();

        // Load LibGDX
        GameFr game = new GameFr();
        getSupportFragmentManager().beginTransaction()
                .add(R.id.fr_game, game)
                .commit();
    }
    ...
}

我的main.xml代码:

<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:background="#263238"
android:id="@+id/main_screen">

<android.support.design.widget.NavigationView
    android:id="@+id/nav_view"
    android:layout_width="wrap_content"
    android:layout_height="match_parent"
    android:layout_gravity="start"
    android:fitsSystemWindows="true"
    app:headerLayout="@layout/profile_nav_bar"
    app:menu="@menu/profile_nav_bar_menu" />

<android.support.percent.PercentRelativeLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <FrameLayout
        android:id="@+id/fr_camera"
        android:layout_width="match_parent"
        app:layout_heightPercent="75%" />
    <FrameLayout
        android:id="@+id/fr_game"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />
</android.support.percent.PercentRelativeLayout>

我想显示导航抽屉栏(与社交网络和其他Android功能)覆盖我的gdx游戏。我的LibGDX表面 - 是一个片段。我试图使用bringToFront,但它不起作用。怎么做?

enter image description here

android libgdx navigation-drawer drawerlayout navigationview
1个回答
0
投票

我找到了解决方案,但我认为它不是最好的变种。我的代码:

ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(this, drawer, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close) {
        @Override
        public void onDrawerSlide(View drawerView, float slideOffset) {
            super.onDrawerSlide(drawerView, slideOffset);
            fr_game.setX(slideOffset * drawerView.getWidth());
            fr_camera.setX(slideOffset * drawerView.getWidth());
            drawer.bringChildToFront(drawerView);
            drawer.requestLayout();
        }
};
© www.soinside.com 2019 - 2024. All rights reserved.