知乎专栏 |
buildFeatures { dataBinding = true viewBinding=true }
viewBinding=true 是开启 Layout DataBinding 的关键
plugins { alias(libs.plugins.android.application) } android { namespace = "cn.netkiller.webrtc" compileSdk = 35 defaultConfig { applicationId = "cn.netkiller.webrtc" minSdk = 35 targetSdk = 35 versionCode = 1 versionName = "1.0" testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" } buildTypes { release { isMinifyEnabled = false proguardFiles( getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro" ) } } compileOptions { sourceCompatibility = JavaVersion.VERSION_11 targetCompatibility = JavaVersion.VERSION_11 } buildFeatures { dataBinding = true viewBinding=true } } dependencies { implementation(libs.appcompat) implementation(libs.material) implementation(libs.activity) implementation(libs.constraintlayout) // implementation(libs.webrtc) implementation(libs.camera.view) implementation(libs.camera.lifecycle) testImplementation(libs.junit) androidTestImplementation(libs.ext.junit) androidTestImplementation(libs.espresso.core) implementation(files("libs/google-webrtc-1.0.32006.aar")) }
以 MainActivity 为例,为 MainActivity 添加 DataBinding
import cn.netkiller.student.databinding.ActivityMainBinding;
定义 binding 变量
public class MainActivity extends AppCompatActivity { private static final String TAG = MainActivity.class.getSimpleName(); private ActivityMainBinding binding;
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState) binding = ActivityMainBinding.inflate(getLayoutInflater()); setContentView(binding.getRoot()); }