سؤال

طريقة العرض السطحية الخاصة بي تمنع ظهور درج التنقل الخاص بي.

يحتوي نشاطي الرئيسي على جزء يقوم بتعيين عرض المحتوى الخاص به على أنه العرض السطحي:

getActivity().setContentView(surfaceView);

يقوم نفس النشاط الرئيسي أيضًا بإنشاء درج التنقل:

جافا:

    drawerLayout = (DrawerLayout) findViewById(R.id.drawerLayout);

    actionBarDrawerToggle = new ActionBarDrawerToggle(this, drawerLayout,
            R.drawable.ic_navigation_drawer, R.string.drawer_open,
            R.string.drawer_close) {

        @Override
        public void onDrawerClosed(View drawerView) {
            super.onDrawerClosed(drawerView);
        }

        @Override
        public void onDrawerOpened(View drawerView) {
            super.onDrawerOpened(drawerView);   
        }

        @Override
        public void onDrawerSlide(View drawerView, float slideOffset){
            drawerLayout.bringChildToFront(drawerView);
            drawerLayout.requestLayout();
        }
    };

    drawerLayout.setDrawerListener(actionBarDrawerToggle);
    getSupportActionBar().setHomeButtonEnabled(true);
    getSupportActionBar().setDisplayHomeAsUpEnabled(true);

ملف XML:

    <android.support.v4.widget.DrawerLayout 
    xmlns:android="http://schemas.android.com/apk/res/android"

    android:id="@+id/drawerLayout"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

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

    <ListView
        android:background="#00000000"
        android:id="@+id/drawerList"
        android:layout_width="320dp"
        android:layout_height="match_parent"
        android:layout_gravity="left">
    </ListView>

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

نرحب بأي طرق بديلة أخرى لجعل درج التنقل أو درج التنقل يبدو متشابهًا مع الحفاظ على منظر السطح!

هل كانت مفيدة؟

المحلول

عندما يستدعي الجزء الخاص بك هذا الخط: getActivity().setContentView(surfaceView);, ، فهو يستبدل تخطيط النشاط الذي يحتوي على DrawerLayout بـ SurfaceView فقط.وهذا يعني أن نشاطك لم يعد يحتوي على DrawerLayout.يجب أن يقوم الجزء الخاص بك بتحميل SurfaceView في تخطيطه الخاص onCreateView().

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top