当前位置:   article > 正文

Android 开发viewBinding使用及其需要注意的事项(Activity做弹窗Dialog)_android 弹窗 activity

android 弹窗 activity

先写一下viewbinding的用法,再提一下当activity作为弹窗时,还用viewbinding需要注意的事项:

build.gradle添加:

  1. viewBinding {
  2. enabled = true
  3. }

如果布局文件是:activity_main.xml

则在Activity中写作:

  1. public class MainActivity extends AppCompatActivity {
  2. ActivityMainBinding mainBinding;
  3. @Override
  4. protected void onCreate(Bundle savedInstanceState) {
  5. super.onCreate(savedInstanceState);
  6. mainBinding = ActivityMainBinding.inflate(getLayoutInflater());
  7. setContentView(mainBinding.getRoot());
  8. }
  9. }

需要注意的事项(非常重要):

如果你要用Activity做全局弹窗(dialog)之类的,千万不要这么写——

  1. ActivityMainBinding mainBinding;
  2. protected void onCreate(@Nullable Bundle savedInstanceState) {
  3. super.onCreate(savedInstanceState);
  4. requestWindowFeature(Window.FEATURE_NO_TITLE);
  5. getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
  6. WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);
  7. mainBinding = ActivityMainBinding.inflate(getLayoutInflater());
  8. setContentView(mainBinding.getRoot());
  9. }

这么写会导致这两句无效——

  1. requestWindowFeature(Window.FEATURE_NO_TITLE);
  2. getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
  3. WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);

正确的写法(如果还是要用viewBinding)——

  1. ActivityMainBinding mainBinding;
  2. @Override
  3. protected void onCreate(@Nullable Bundle savedInstanceState) {
  4. super.onCreate(savedInstanceState);
  5. requestWindowFeature(Window.FEATURE_NO_TITLE);
  6. getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
  7. WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);
  8. setContentView(R.layout.activity_main);
  9. mainBinding = ActivityMainBinding.bind(findViewById(R.id.main));
  10. }

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/从前慢现在也慢/article/detail/225154
推荐阅读
相关标签
  

闽ICP备14008679号