如何在单击片段中的后退按钮时避免在oncreateview中执行某些代码

时间:2016-01-16 06:45:53

标签: android android-fragments drawerlayout

我正在开发Android应用程序,我正在尝试在我的项目中实现抽屉布局(滑块菜单)。实际上让我解释我的项目,我有一个带有一些gridview项目的recyclerview,以便我们能够看到我们的主屏幕。我想在这个网格项目的顶部显示抽屉布局,这意味着recyclerview。我希望在应用程序打开后在我的抽屉布局(滑块菜单)中显示我的个人资料照片,之后我们可以向后滑动,像往常一样,我们可以看到我们的网格项目。

我几乎没有,但我有一个问题。如果我点击任何一个gridview项目并且我进入该页面并且如果我点击后退,那么我的抽屉布局(滑块菜单)显示时,我可以在刷卡后打开应用程序时显示我的抽屉布局(滑块菜单)但是从任何网格项目中单击返回时都不应显示      我在同一个xml文件中给出了recyclerview和抽屉布局(滑块菜单),这就是用户点击后退按钮的原因,recyclelerview正在显示抽屉布局(滑块菜单)

实际上如果我使用活动我将不会遇到任何问题,因为在活动中,如果我点击后退按钮它将不会调用oncreate方法它将调用onrestart方法,即使我点击按钮也不会执行oncreate的原因。  但是在片段中我的oncreateview正在执行,即使我单击后退按钮这是我的问题,因为如果我单击按钮,某些代码集不应该在我的oncreateview中执行。你能帮我解决一下我的问题。

这是我的Oncreateview代码

@Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        View rootView = inflater.inflate(R.layout.test2, container, false);

           mDrawerLayout = (DrawerLayout)rootView.findViewById(R.id.drawer_layout);

        mDrawerList = (ListView) rootView.findViewById(R.id.list_slidermenu);
        mDrawerLayout.openDrawer(Gravity.LEFT);

        navDrawerItems = new ArrayList<String>();

        navDrawerItems.add("first");
        navDrawerItems.add("second");
        navDrawerItems.add("third");

        adapter = new NavDrawerListAdapter(getActivity(),navDrawerItems);
        mDrawerList.setAdapter(adapter);

        return rootView;
  }  

这是我的test2布局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">

    <!-- Framelayout to display Fragments -->
    <FrameLayout
        android:id="@+id/frame_container"
        android:layout_width="match_parent"
        android:layout_height="match_parent">

    <!-- Grid View Items -->  
        <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            xmlns:ads="http://schemas.android.com/apk/res-auto"
            android:clipToPadding="false"
            android:id="@+id/fade"
            android:orientation="vertical">

            <LinearLayout
                android:id="@+id/ll1"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:layout_weight="0.2"
                android:paddingRight="5dp"
                android:paddingLeft="5dp"
                android:orientation="vertical">

                <android.support.v7.widget.RecyclerView
                    android:id="@+id/recycler_view"
                    android:layout_width="match_parent"
                    android:clickable="true"
                    android:layout_height="match_parent"/>

            </LinearLayout>

        </LinearLayout>
    </FrameLayout>

    <!-- Listview to display slider menu -->
    <ListView
        android:id="@+id/list_slidermenu"
        android:layout_width="240dp"
        android:layout_height="match_parent"
        android:layout_gravity="start"
        android:choiceMode="singleChoice"
        android:divider="@null"
        android:listSelector="@drawable/list_selector"
        android:background="@color/list_background"/>
</android.support.v4.widget.DrawerLayout>

Atleast我希望在点击后退按钮时不应执行此行 mDrawerLayout.openDrawer(Gravity.LEFT);

0 个答案:

没有答案