注意:您需要至少使用 Android Studio 3.6 Canary 11 才能使用 View Binding
要将 ViewBinding 添加到我们的应用程序中,我们需要将以下内容添加到 build.gradle 文件中:
android {…viewBinding {enabled = true}}
注:Android Studio 4.0 以上 ViewBinding 启用方式变更如下
android {...buildFeatures {viewBinding true}}
接下来新建一个布局文件activity_view_binding,内容如下
<?xml version="1.0" encoding="utf-8"?><android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"><TextViewandroid:id="@+id/text"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_margin="10dp"app:layout_constraintStart_toStartOf="parent"app:layout_constraintTop_toTopOf="parent"tools:text="111" /><android.support.v7.widget.AppCompatImageViewandroid:id="@+id/image"android:layout_width="0dp"android:layout_height="0dp"android:layout_margin="10dp"app:layout_constraintDimensionRatio="1:1"app:layout_constraintStart_toStartOf="parent"app:layout_constraintTop_toBottomOf="@id/text"app:layout_constraintWidth_percent="0.4" /></android.support.constraint.ConstraintLayout>
然后在Activity等需要使用布局的类中进行ViewBinding的初始化及使用,如下
public class ViewBindingActivity extends AppCompatActivity {private ActivityViewBindingBinding viewBinding;@Overrideprotected void onCreate(@Nullable Bundle savedInstanceState) {super.onCreate(savedInstanceState);viewBinding = ActivityViewBindingBinding.inflate(LayoutInflater.from(this));setContentView(viewBinding.getRoot());viewBinding.text.setText("view binding");viewBinding.image.setImageResource(R.color.black);}}
ViewBinding 不用再手动进行类型转换,也避免了空指针错误。如果不想生成 ViewBinding,可以在布局的根视图上使用tools:viewBindingIgnore="true"
原文链接:https://blog.csdn.net/jklwan/java/article/details/102767871
