简体   繁体   English

单击 NavigationDrawer 时未打开底部工作表

[英]Bottom Sheet not opening with the NavigationDrawer click

I have two navigation drawers and a bottom sheet in my app.我的应用程序中有两个导航抽屉和一个底部工作表。 I want to expand the bottom sheet by click an item from a navigation drawer.我想通过单击导航抽屉中的项目来展开底部工作表。 Navigation Drawers work really fine.导航抽屉工作得很好。

updated xml....更新了 xml....

<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/drawer_layout_widget"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:clickable="true"
    android:focusableInTouchMode="true">

    <android.support.design.widget.CoordinatorLayout xmlns:app="http://schemas.android.com/apk/res-auto"
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <RelativeLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:background="@color/bg_register"
            app:layout_behavior="@string/appbar_scrolling_view_behavior"
            tools:context="com.ceatkelanisrilanka.dushanmadushanka.ceat.CeatMainActivity"
            tools:showIn="@layout/activity_ceat_main">

            <include
                android:id="@+id/app_bar"
                layout="@layout/app_toolbar_welcome_menu"></include>

            <com.rey.material.widget.ProgressView
                android:id="@+id/pViewew"
                cpd_strokeColor="@android:color/holo_red_dark"
                cpd_strokeSecondaryColor="@android:color/holo_blue_bright"
                cpd_strokeSize="25dp"
                android:layout_width="50dp"
                android:layout_height="50dp"
                android:layout_alignTop="@+id/txtMonthSn"
                android:layout_centerHorizontal="true"
                app:pv_autostart="true"
                app:pv_circular="true"
                app:pv_progressMode="indeterminate"
                app:pv_progressStyle="@style/Material.Drawable.CircularProgress" />

            <TextView
                android:id="@+id/txtMonth"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignLeft="@+id/app_bar"
                android:layout_alignStart="@+id/app_bar"
                android:layout_below="@+id/app_bar"
                android:layout_marginTop="2dp"
                android:paddingLeft="10dp"
                android:text="Month"
                android:textColor="#ffffff"
                android:textSize="24sp" />

            <TextView
                android:id="@+id/txtMonthSn"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignParentEnd="true"
                android:layout_alignParentRight="true"
                android:layout_alignTop="@+id/txtMonth"
                android:paddingRight="10dp"
                android:text="MonthSn"
                android:textColor="#ffffff"
                android:textSize="24sp" />


            <TextView
                android:id="@+id/yearTextV"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignEnd="@+id/txtMonth"
                android:layout_alignRight="@+id/txtMonth"
                android:layout_below="@+id/txtMonth"
                android:text="year"
                android:textAppearance="?android:attr/textAppearanceSmall"
                android:textColor="#ffffff" />

            <RelativeLayout
                android:id="@+id/relativeLayout2"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_above="@+id/relativeLayout"
                android:layout_marginBottom="18dp">

                <com.github.lzyzsd.circleprogress.ArcProgress
                    android:id="@+id/arc_progress"
                    android:layout_width="220dp"
                    android:layout_height="220dp"
                    android:layout_alignParentLeft="true"
                    android:layout_alignParentStart="true"
                    android:layout_alignParentTop="true"
                    android:layout_marginLeft="20dp"
                    android:layout_marginStart="20dp"
                    android:padding="5dp" />

            </RelativeLayout>

            <!-- <com.github.lzyzsd.circleprogress.ArcProgress
                 android:id="@+id/arc_progress_two"
                 android:layout_width="100dp"
                 android:layout_height="100dp"
                 android:layout_alignParentEnd="true"
                 android:layout_alignParentRight="true"
                 android:layout_centerVertical="true"
                 android:layout_marginEnd="20dp"
                 android:layout_marginRight="20dp"
                 android:padding="5dp"
                 app:arc_bottom_text="Precentage" />-->
            <LinearLayout
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignBottom="@+id/relativeLayout2"
                android:layout_alignParentEnd="true"
                android:layout_alignParentRight="true"
                android:layout_marginBottom="22dp"
                android:layout_marginEnd="20dp"
                android:layout_marginRight="20dp"
                android:gravity="center"
                android:orientation="vertical">

                <com.hookedonplay.decoviewlib.DecoView
                    android:id="@+id/dynamicArcView"
                    android:layout_width="100dp"
                    android:layout_height="100dp"
                    android:padding="5dp" />

                <TextView
                    android:id="@+id/pView"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="0 %"
                    android:textColor="#4B73C4"
                    android:textSize="20sp" />

                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="Precentage"
                    android:textColor="#4B73C4"
                    android:textSize="15sp" />

            </LinearLayout>


            <RelativeLayout
                android:id="@+id/relativeLayout"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_alignParentBottom="true"
                android:layout_alignParentLeft="true"
                android:layout_alignParentStart="true"
                android:layout_marginBottom="23dp"
                android:paddingLeft="5dp"
                android:paddingRight="5dp">

                <TextView
                    android:id="@+id/txtMtar"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_alignParentLeft="true"
                    android:layout_alignParentStart="true"
                    android:layout_alignTop="@+id/txtTarget"
                    android:padding="5dp"
                    android:text="Monthly Target"
                    android:textAppearance="?android:attr/textAppearanceMedium"
                    android:textColor="#ffffff" />

                <TextView
                    android:id="@+id/txtPre"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_alignParentLeft="true"
                    android:layout_alignParentStart="true"
                    android:layout_below="@+id/txtMAch"
                    android:layout_marginTop="40dp"
                    android:padding="5dp"
                    android:text="Percentage"
                    android:textAppearance="?android:attr/textAppearanceMedium"
                    android:textColor="#ffffff" />

                <TextView
                    android:id="@+id/txtMAch"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_alignParentLeft="true"
                    android:layout_alignParentStart="true"
                    android:layout_marginTop="80dp"
                    android:padding="5dp"
                    android:text="Achievment"
                    android:textAppearance="?android:attr/textAppearanceMedium"
                    android:textColor="#ffffff" />

                <TextView
                    android:id="@+id/txtTarget"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_above="@+id/txtAchievement"
                    android:layout_alignLeft="@+id/txtAchievement"
                    android:layout_alignStart="@+id/txtAchievement"
                    android:layout_marginBottom="35dp"
                    android:padding="5dp"
                    android:text="M"
                    android:textAppearance="?android:attr/textAppearanceMedium"
                    android:textColor="#ffffff" />

                <TextView
                    android:id="@+id/txtAchievement"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_above="@+id/txtPre"
                    android:layout_centerHorizontal="true"
                    android:padding="5dp"
                    android:text="M"
                    android:textAppearance="?android:attr/textAppearanceMedium"
                    android:textColor="#ffffff" />

                <TextView
                    android:id="@+id/txtCollection"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_alignBottom="@+id/txtPre"
                    android:layout_alignLeft="@+id/txtAchievement"
                    android:layout_alignStart="@+id/txtAchievement"
                    android:padding="5dp"
                    android:text="M"
                    android:textAppearance="?android:attr/textAppearanceMedium"
                    android:textColor="#ffffff" />

                <Button
                    android:id="@+id/bValue"
                    style="?android:attr/buttonStyleSmall"
                    android:layout_width="120dp"
                    android:layout_height="wrap_content"
                    android:layout_alignBaseline="@+id/txtAchievement"
                    android:layout_alignBottom="@+id/txtAchievement"
                    android:layout_alignLeft="@+id/bTon"
                    android:layout_alignStart="@+id/bTon"
                    android:text="Value"
                    android:textColor="@color/border_gray" />

                <Button
                    android:id="@+id/bTon"
                    style="?android:attr/buttonStyleSmall"
                    android:layout_width="120dp"
                    android:layout_height="wrap_content"
                    android:layout_alignParentEnd="true"
                    android:layout_alignParentRight="true"
                    android:layout_alignTop="@+id/txtTarget"
                    android:text="Ton"
                    android:textColor="@color/border_gray" />

                <Button
                    android:id="@+id/bCollection"
                    style="?android:attr/buttonStyleSmall"
                    android:layout_width="120dp"
                    android:layout_height="wrap_content"
                    android:layout_alignBottom="@+id/txtCollection"
                    android:layout_alignLeft="@+id/bValue"
                    android:layout_alignStart="@+id/bValue"
                    android:text="Collection"
                    android:textColor="@color/border_gray" />

            </RelativeLayout>

        </RelativeLayout>


        <include
            android:id="@+id/bottom_sheet"
            layout="@layout/bottom_sheet" />

    </android.support.design.widget.CoordinatorLayout>

    <fragment
        android:id="@+id/fragment_navigation_drawer"
        android:name="com.ceatkelanisrilanka.dushanmadushanka.ceat.fragments.NavigationDrawerFragment"
        android:layout_width="@dimen/nav_drawer_width"
        android:layout_height="match_parent"
        android:layout_gravity="start"
        app:layout="@layout/fragment_navigation_drawer"
        tools:layout="@layout/fragment_navigation_drawer"></fragment>

    <fragment
        android:id="@+id/month_navigation_drawer"
        android:name="com.ceatkelanisrilanka.dushanmadushanka.ceat.fragments.MonthNavigationDrawerFragment"
        android:layout_width="@dimen/month_nav_drawer_width"
        android:layout_height="match_parent"
        android:layout_gravity="end"
        app:layout="@layout/month_navigation_drawer"
        tools:layout="@layout/month_navigation_drawer"></fragment>

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

My MonthNavigationDrawerFragment recyclerview click我的 MonthNavigationDrawerFragment recyclerview 点击

recyclerView.addOnItemTouchListener(new RecycleTouchListner(getActivity(), recyclerView, new ClickListener() {
            @Override
            public void onClick(View view, int position) {
                switch (position) {
                    case 0:
                        welcomeMenu.openBottomSheet();
                        mDrawerlayout.closeDrawers();
                        break;

                    case 1:
                     ......
                }
            }

        }));
        return vieww;
    }

My WelcomeMenu class我的欢迎菜单类

    public class WelcomeMenu extends AppCompatActivity {

        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.welcome_menu);

            vollySingleton = VollySingleton.getsInstance();
            requestQueue = vollySingleton.getmRequestQueue();

            typeface = Typeface.createFromAsset(getAssets(), "helvr.ttf");
            snTypeFace = Typeface.createFromAsset(getAssets(), "DL_PARAS.TTF");
            welcomScreenTypeface = Typeface.createFromAsset(getAssets(), "productsans.ttf");

            progressView = (ProgressView) findViewById(R.id.pViewew);

            bottomSheet = findViewById(R.id.bottom_sheet);
            bottomSheetBehavior = BottomSheetBehavior.from(bottomSheet);
            initState = BottomSheetBehavior.STATE_COLLAPSED;

            bottomSheet.post(new Runnable() {
                @Override
                public void run() {
                    bottomSheetBehavior.setState(initState);
                }
            });

            toolbar = (Toolbar) findViewById(R.id.app_bar);
            setSupportActionBar(toolbar);
            getSupportActionBar().setDisplayHomeAsUpEnabled(true);
            getSupportActionBar().setTitle("Achivements");

            NavigationDrawerFragment navigationDrawerFragment = (NavigationDrawerFragment) getSupportFragmentManager().findFragmentById(R.id.fragment_navigation_drawer);
            navigationDrawerFragment.setUp(R.id.fragment_navigation_drawer, (DrawerLayout) findViewById(R.id.drawer_layout_widget), toolbar);

            MonthNavigationDrawerFragment monthNavigationDrawerFragment = (MonthNavigationDrawerFragment) getSupportFragmentManager().findFragmentById(R.id.month_navigation_drawer);
            monthNavigationDrawerFragment.setUp(R.id.month_navigation_drawer, (DrawerLayout) findViewById(R.id.drawer_layout_widget), toolbar);

            final Calendar calendar = Calendar.getInstance();
            SimpleDateFormat month_date = new SimpleDateFormat("MMMM");
            String month_name = month_date.format(calendar.getTime());
            int year_name = calendar.get(calendar.YEAR);
            int monthNo = calendar.get(Calendar.MONTH);

            txtTarget = (TextView) findViewById(R.id.txtTarget);
            txtAchievement = (TextView) findViewById(R.id.txtAchievement);
            txtCollection = (TextView) findViewById(R.id.txtCollection);
            txtMonth = (TextView) findViewById(R.id.txtMonth);
            txtMonthSn = (TextView) findViewById(R.id.txtMonthSn);
            txtYear = (TextView) findViewById(R.id.yearTextV);
            txtM_tar = (TextView) findViewById(R.id.txtMtar);
            txtM_ach = (TextView) findViewById(R.id.txtMAch);
            txtM_prec = (TextView) findViewById(R.id.txtPre);
            arcProgress = (ArcProgress) findViewById(R.id.arc_progress);
            pView = (TextView) findViewById(R.id.pView);
            //arcProgressPrecentage = (ArcProgress) findViewById(R.id.arc_progress_two);

            df = new SimpleDateFormat("yyyy-MM");
            systemDate = df.format(new Date());

            arcView = (DecoView) findViewById(R.id.dynamicArcView);

            bTon = (Button) findViewById(R.id.bTon);
            bValue = (Button) findViewById(R.id.bValue);
            bCollection = (Button) findViewById(R.id.bCollection);

            txtMonth.setText(month_name);
            txtMonth.setTypeface(typeface);
            txtM_prec.setTypeface(welcomScreenTypeface);
            txtM_ach.setTypeface(welcomScreenTypeface);
            txtM_tar.setTypeface(welcomScreenTypeface);
            txtYear.setText(String.valueOf(year_name));

            db = new SQLiteHandler(getApplicationContext());

            // session manager
            session = new SessionManager(getApplicationContext());

            if (!session.isLoggedIn()) {
                logoutUser();
            } else {
                //pass button click operation
                getJsonRequest(bTon, bCollection, bValue, systemDate);
            }

        }
public void openBottomSheet() {
        bottomSheetBehavior = BottomSheetBehavior.from(bottomSheet);
        bottomSheetBehavior.setState(BottomSheetBehavior.STATE_EXPANDED);

    }
}

LogCat日志猫

10:11:48.907 18943-18943/com.ceatkelanisrilanka.dushanmadushanka.ceat E/AndroidRuntime: FATAL EXCEPTION: main
                                                                                              Process: com.ceatkelanisrilanka.dushanmadushanka.ceat, PID: 18943
                                                                                              java.lang.NullPointerException: Attempt to invoke virtual method 'void android.support.design.widget.BottomSheetBehavior.setState(int)' on a null object reference
                                                                                                  at com.ceatkelanisrilanka.dushanmadushanka.ceat.WelcomeMenu.openBottomSheet(WelcomeMenu.java:816)
                                                                                                  at com.ceatkelanisrilanka.dushanmadushanka.ceat.fragments.MonthNavigationDrawerFragment$1.onClick(MonthNavigationDrawerFragment.java:87)
                                                                                                  at com.ceatkelanisrilanka.dushanmadushanka.ceat.fragments.MonthNavigationDrawerFragment$RecycleTouchListner.onInterceptTouchEvent(MonthNavigationDrawerFragment.java:239)
                                                                                                  at android.support.v7.widget.RecyclerView.dispatchOnItemTouchIntercept(RecyclerView.java:2206)
                                                                                                  at android.support.v7.widget.RecyclerView.onInterceptTouchEvent(RecyclerView.java:2252)
                                                                                                  at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1960)
                                                                                                  at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2405)
                                                                                                  at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2106)
                                                                                                  at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2405)
                                                                                                  at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2106)
                                                                                                  at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2405)
                                                                                                  at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2106)
                                                                                                  at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2405)
                                                                                                  at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2106)
                                                                                                  at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2405)
                                                                                                  at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2106)
                                                                                                  at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2405)
                                                                                                  at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2106)
                                                                                                  at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2405)
                                                                                                  at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2106)
                                                                                                  at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:2369)
                                                                                                  at com.android.internal.policy.impl.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1719)
                                                                                                  at android.app.Activity.dispatchTouchEvent(Activity.java:2742)
                                                                                                  at android.support.v7.view.WindowCallbackWrapper.dispatchTouchEvent(WindowCallbackWrapper.java:60)
                                                                                                  at android.support.v7.view.WindowCallbackWrapper.dispatchTouchEvent(WindowCallbackWrapper.java:60)
                                                                                                  at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:2330)
                                                                                                  at android.view.View.dispatchPointerEvent(View.java:8666)
                                                                                                  at android.view.ViewRootImpl$ViewPostImeInputStage.processPointerEvent(ViewRootImpl.java:4123)
                                                                                                  at android.view.ViewRootImpl$ViewPostImeInputStage.onProcess(ViewRootImpl.java:3989)
                                                                                                  at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3544)
                                                                                                  at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:3597)
                                                                                                  at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:3563)
                                                                                                  at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:3680)
                                                                                                  at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:3571)
                                                                                                  at android.view.ViewRootImpl$AsyncInputStage.apply(ViewRootImpl.java:3737)
                                                                                                  at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3544)
                                                                                                  at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:3597)
                                                                                                  at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:3563)
                                                                                                  at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:3571)
                                                                                                  at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3544)
                                                                                                  at android.view.ViewRootImpl.deliverInputEvent(ViewRootImpl.java:5807)
                                                                                                  at android.view.ViewRootImpl.doProcessInputEvents(ViewRootImpl.java:5781)
                                                                                                  at android.view.ViewRootImpl.enqueueInputEvent(ViewRootImpl.java:5752)
                                                                                                  at android.view.ViewRootImpl$WindowInputEventReceiver.onInputEvent(ViewRootImpl.java:5897)
                                                                                                  at android.view.InputEventReceiver.dispatchInputEvent(InputEventReceiver.java:185)
                                                                                                  at android.os.MessageQueue.nativePollOnce(Native Method)
                                                                                                at android.os.MessageQueue.next(MessageQueue.jav
04-20 10:16:48.999 18943-18943/com.ceatkelanisrilanka.dushanmadushanka.ceat I/Process: Sending signal. PID: 18943 SIG: 9

您可以尝试先关闭导航抽屉,然后打开底部工作表只是尝试交换代码行

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM