赞
踩
先写一下viewbinding的用法,再提一下当activity作为弹窗时,还用viewbinding需要注意的事项:
build.gradle添加:
- viewBinding {
- enabled = true
- }
如果布局文件是:activity_main.xml
则在Activity中写作:
- public class MainActivity extends AppCompatActivity {
- ActivityMainBinding mainBinding;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- mainBinding = ActivityMainBinding.inflate(getLayoutInflater());
- setContentView(mainBinding.getRoot());
- }
- }
需要注意的事项(非常重要):
如果你要用Activity做全局弹窗(dialog)之类的,千万不要这么写——
- ActivityMainBinding mainBinding;
- protected void onCreate(@Nullable Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- requestWindowFeature(Window.FEATURE_NO_TITLE);
- getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
- WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);
- mainBinding = ActivityMainBinding.inflate(getLayoutInflater());
- setContentView(mainBinding.getRoot());
- }
这么写会导致这两句无效——
- requestWindowFeature(Window.FEATURE_NO_TITLE);
- getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
- WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);
正确的写法(如果还是要用viewBinding)——
- ActivityMainBinding mainBinding;
- @Override
- protected void onCreate(@Nullable Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- requestWindowFeature(Window.FEATURE_NO_TITLE);
- getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
- WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);
- setContentView(R.layout.activity_main);
- mainBinding = ActivityMainBinding.bind(findViewById(R.id.main));
- }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。