根据导航抽屉的打开和关闭更改切换按钮的状态

问题描述 投票:0回答:1

我已经使用一个自定义的导航抽屉创建了此活动,该抽屉使用切换按钮打开和关闭。每次单击切换按钮上的图像时,图像都会更改,并且抽屉也随之打开。

但是,我这里有一个问题,那就是当我拖动并关闭抽屉或由于触摸屏幕而关闭抽屉时,切换按钮上的图像没有改变,或者其检查值保持为false。

我该怎么办?

这是我的代码:

public class mainActivity extends AppCompatActivity {

    ToggleButton toggleButton;
    DrawerLayout drawerll;
    FragmentTransaction fragmentTransaction;


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

        toggleButton = findViewById(R.id.toggleButton);
        toggleButton.setBackgroundResource(R.drawable.menu_open);
        drawerll = findViewById(R.id.drawerll);

        drawerll = findViewById(R.id.drawerll);

        fragmentTransaction = getSupportFragmentManager().beginTransaction();
        fragmentTransaction.add(R.id.frame_container, new dashboard());
        fragmentTransaction.commit();


        toggleButton.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {

            @Override
            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
                // TODO Auto-generated method stub

                if(isChecked){
                    drawerll.closeDrawer(Gravity.LEFT);
                    toggleButton.setBackgroundResource(R.drawable.menu_open);

                }else{
                    drawerll.openDrawer(Gravity.LEFT);
                    toggleButton.setBackgroundResource(R.drawable.menu_close);

                }
            }
        });

    }
}
android navigation-drawer android-togglebutton
1个回答
0
投票

您应该在抽屉中添加一个DrawerLayout.DrawerListener并将代码设置为分别在onDrawerOpened(View drawerView)onDrawerClosed(View drawerView)中设置切换状态。

希望这会有所帮助。

© www.soinside.com 2019 - 2024. All rights reserved.