-1

私はフラグメントを拡張するクラスを持っています。私がやりたいスライドドロワーがあります。スライドドロワーが開いている場合、ユーザーがスライドドロワーの外側に触れると、自動的に閉じます。手動で開閉するための私のコードは次のようなものです:

        final Button slideButton;
        final SlidingDrawer slidingDrawer;
        slideButton = (Button) view.findViewById(R.id.slideButton);
        slidingDrawer = (SlidingDrawer) view.findViewById(R.id.SlidingDrawer);

        slideButton.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                if(slidingDrawer.isOpened())
                    slidingDrawer.animateClose();
                else
                    slidingDrawer.animateOpen();
            }
        });

        slidingDrawer.setOnDrawerOpenListener(new OnDrawerOpenListener() {

            @Override
            public void onDrawerOpened() {
                slideButton.setBackgroundResource(R.drawable.openarrow);

            }
        });

        slidingDrawer.setOnDrawerCloseListener(new OnDrawerCloseListener() {
            @Override
            public void onDrawerClosed() {
                slideButton.setBackgroundResource(R.drawable.closearrow);
            }
        });

どうすればそれを達成できますか??

4

1 に答える 1

3

スライド ドロワーをどのように実装しているかはわかりませんが、次のように、外側に触れてキーボードを閉じるのと同じように行うことができます。

https://stackoverflow.com/a/11656129/901309

ただし、キーボードを閉じる代わりに、スライド式の引き出しを閉じます。スライド ドロワー以外のすべてを含むビュー (LinearLayout、RelativeLayout など) の setupUI() メソッドを渡す必要があります。

また、「if(!(View instanceof EditText))」チェックを削除します。

于 2013-01-05T02:27:02.330 に答える