美文网首页
viewbinding

viewbinding

作者: 闫鹏飞写字的地方 | 来源:发表于2022-06-21 09:25 被阅读0次

    官方地址:https://developer.android.google.cn/topic/libraries/view-binding

    B站地址:https://www.bilibili.com/video/BV1fY4y1i7BG?p=8&vd_source=c9e619eb6c2ba53337eccc49eb025732

    android {
            ...
            viewBinding {
                enabled = true
            }
        }
    
    class MainActivity : AppCompatActivity() {
        override fun onCreate(savedInstanceState: Bundle?) {
            super.onCreate(savedInstanceState)
            val binding = ActivityMainBinding.inflate(layoutInflater)
            val view = binding.root
            setContentView(view)
            binding.tvTest.text = "Hello BeiJing"
        }
    }
    

    Binding文件位置


    image.png

    ActivityMainBinding

    public final class ActivityMainBinding implements ViewBinding {
      @NonNull
      private final ConstraintLayout rootView;
    
      @NonNull
      public final TextView tvTest;
    
      private ActivityMainBinding(@NonNull ConstraintLayout rootView, @NonNull TextView tvTest) {
        this.rootView = rootView;
        this.tvTest = tvTest;
      }
    
      @Override
      @NonNull
      public ConstraintLayout getRoot() {
        return rootView;
      }
    
      @NonNull
      public static ActivityMainBinding inflate(@NonNull LayoutInflater inflater) {
        return inflate(inflater, null, false);
      }
    
      @NonNull
      public static ActivityMainBinding inflate(@NonNull LayoutInflater inflater,
          @Nullable ViewGroup parent, boolean attachToParent) {
        View root = inflater.inflate(R.layout.activity_main, parent, false);
        if (attachToParent) {
          parent.addView(root);
        }
        return bind(root);
      }
    
      @NonNull
      public static ActivityMainBinding bind(@NonNull View rootView) {
        // The body of this method is generated in a way you would not otherwise write.
        // This is done to optimize the compiled bytecode for size and performance.
        int id;
        missingId: {
          id = R.id.tvTest;
          TextView tvTest = ViewBindings.findChildViewById(rootView, id);
          if (tvTest == null) {
            break missingId;
          }
    
          return new ActivityMainBinding((ConstraintLayout) rootView, tvTest);
        }
        String missingId = rootView.getResources().getResourceName(id);
        throw new NullPointerException("Missing required view with ID: ".concat(missingId));
      }
    }
    
    

    相关文章

      网友评论

          本文标题:viewbinding

          本文链接:https://www.haomeiwen.com/subject/pxdxvrtx.html