亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在固定時間未單擊任何項??目后關閉打開的導航抽屜?

如何在固定時間未單擊任何項??目后關閉打開的導航抽屜?

青春有我 2023-07-19 16:13:28
我打開了主要活動的導航抽屜 onCreate() 。我還想在顯示 1 或 2 秒后關閉該導航抽屜。我試過if(navDrawer.isHovered()){       navDrawer.closeDrawers();    }protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        ButterKnife.bind(this);        setToolbarContent(imgNotification,txtNotification);        fragmentManager = getSupportFragmentManager();        navDrawer.openDrawer(rightNavigationView,true);        if(navDrawer.isHovered()){           navDrawer.closeDrawers();        }    }我想知道如何設置關閉導航抽屜的計時器。有什么辦法嗎。
查看完整描述

3 回答

?
FFIVE

TA貢獻1797條經驗 獲得超6個贊

步驟一:添加 Nav Drawer 的監聽器,在打開的回調中實現這個


@Override

        public void onDrawerOpened(View drawerView) {

            super.onDrawerOpened(drawerView);


        }

將此代碼實現到此方法中


new Handler().postDelayed(new Runnable() {

    @Override

    public void run() {

if(navDrawer.isOpened()){

        navDrawer.closeDrawers();

}

    }

},2000);


查看完整回答
反對 回復 2023-07-19
?
回首憶惘然

TA貢獻1847條經驗 獲得超11個贊

嘗試在 2 秒后關閉


new Handler().postDelayed(new Runnable() {

        @Override

        public void run() {

            navDrawer.closeDrawers();

        }

    },2000);


查看完整回答
反對 回復 2023-07-19
?
楊__羊羊

TA貢獻1943條經驗 獲得超7個贊

不要只是創建隨機處理程序對象,因為這可能會導致諸如由于待處理指令(可運行對象)而隨機關閉抽屜之類的問題。您可以直接將可運行對象發布/延遲后到視圖。例如:-


class ExampleActivity extends AppCompatActivity {


    private static final long AUTO_CLOSE_DELAY = 2000L;


    @Nullable

    private DrawerLayout drawerLayout;


    @NonNull

    private final Runnable closeDrawerRunnable = new Runnable() {

        @Override

        public void run() {

            if(drawerLayout!=null && drawerLayout.isDrawerOpen(GravityCompat.START)){

                drawerLayout.closeDrawer(GravityCompat.START);

            }

        }

    };


    @Override

    protected void onCreate(@Nullable Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_example);

        drawerLayout = findViewById(R.id.drawerLayout);

        drawerLayout.addDrawerListener(new DrawerLayout.DrawerListener() {

            @Override

            public void onDrawerSlide(@NonNull View drawerView, float slideOffset) {


            }


            @Override

            public void onDrawerOpened(@NonNull View drawerView) {

                drawerLayout.removeCallbacks(closeDrawerRunnable);

                drawerLayout.postDelayed(closeDrawerRunnable,AUTO_CLOSE_DELAY);

            }


            @Override

            public void onDrawerClosed(@NonNull View drawerView) {

                drawerLayout.removeCallbacks(closeDrawerRunnable);

            }


            @Override

            public void onDrawerStateChanged(int newState) {


            }

        });

    }

}


查看完整回答
反對 回復 2023-07-19
  • 3 回答
  • 0 關注
  • 181 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號