web-dev-qa-db-ja.com

ボタンだけで引き出しレイアウトを開くにはどうすればよいですか?

私はタブ構造のアプリケーションに取り組んでおり、スライド動作を使用してタブ内を移動します。

しかし、今、私は引き出しレイアウトを適用したいと思います。問題は、ドロワーにイベントを開くためのスライドがあることです。このイベントを削除するにはどうすればよいですか?私の考えは、引き出しはボタンでしか開閉できないというものでした。これは可能ですか?ありがとう!

6
pgarriga

書くだけ

drawer.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED);

メニューがジェスチャーを聞かないようにする

openDrawercloseDrawerを使用して、メニューの表示を変更します

24
Maxim Efimov

デフォルトでは、DrawerLayoutは、スライドが発生するまでにDrawerを開くコードを入力しない限り、最初はビューから非表示になっています。イベントがトリガーされました。

Navigation Drawer の例から、contain _content_frame_は、フラグメントを使用してDrawer内のビューを動的に表示するために使用されます。

_  <FrameLayout
        Android:id="@+id/content_frame"
        Android:layout_width="match_parent"
        Android:layout_height="match_parent" >
    </FrameLayout>
_

FragmentonCreateView()から、このコードを配置するOnClickListenerのあるボタンをどこかに含めることができます。

_   //For me a better way in avoiding a `null pointer` in getting the DrawerLayout
   final DrawerLayout drawer = (DrawerLayout) getActivity().findViewById(R.id.drawer_layout);
   btn.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                            //Opens the Drawer
                drawer.openDrawer(Your View, Usually a ListView);
            }

                return false;
        });
_

*を使用して引き出しを閉じることもできます。

_drawer.closeDrawer(Your View, Usually a ListView);
_
15
rahstame

このように書くことができます

 mButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {

            drawer.openDrawer(navigationView);

        }
    });
1

フラグメント内のボタンをクリックして引き出しアイテム間を移動したい場合は、これを使用できます

((YourMainActivity)getActivity()).selectItem(position);
0