【问题标题】:Make screen not clickable until a button is clicked在单击按钮之前使屏幕不可单击
【发布时间】:2020-06-17 00:43:39
【问题描述】:

我正在开发一个 kotlin 应用程序,我的活动是全屏的,我想制作一个按钮,除非单击该按钮,否则屏幕无法退出或返回或任何其他操作。就像视频播放器锁定类型中的那个。

【问题讨论】:

    标签: android kotlin fullscreen


    【解决方案1】:

    我的第一个想法是制作布尔值isLocked,然后单击按钮后将此值更改为相反的值并覆盖您想要锁定的所有功能/事件等,如果isLocked 为真,则不要执行它们。
    这是我锁定后退按钮的简单代码(在 java 中,但可以轻松更改为 Kotlin)

    public class MainActivity extends AppCompatActivity
    {
        boolean isLocked = false;
    
        @Override
        protected void onCreate(Bundle savedInstanceState)
        {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
    
            Button button = findViewById(R.id.button);
            button.setOnClickListener(new View.OnClickListener()
            {
                @Override
                public void onClick(View v)
                {
                    isLocked ^= true;
                    System.out.println(isLocked);
                }
            });
        }
    
        @Override
        public void onBackPressed()
        {
            if (!isLocked)
            {
                super.onBackPressed();
            }
        }
    }
    

    我认为以类似的方式您可以锁定每个事件。

    你也可以这样做:

    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event)
    {
        if (!isLocked)
        {
            return super.onKeyDown(keyCode, event);
        }
        else
        {
            return true;
        }
    }
    

    这将取消所有事件,例如单击返回按钮或更改音量

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-06-21
      • 2020-06-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多