目前,谷歌在 Android Studio 3.6 Canary 11 及更高版本中加入了新的視圖綁定方式ViewBinding。
ViewBinding 使用:
1在所使用的的module下添加(確保Android studio爲3.6以上版本)
android {
..
viewBinding {
enabled = true
}
}
如果在使用的過程中開發者不想爲某個佈局文件生成binding類在佈局中可以添加
<androidx.constraintlayout.widget.ConstraintLayout
…………
tools:viewBindingIgnore="true" >
…………
</androidx.constraintlayout.widget.ConstraintLayout>
編譯次module 生成ViewBinding 輔助類
使用方法:
public class MainActivity extends AppCompatActivity {
private static final String TAG = "Test";
private ActivityMainBinding mainBinding ;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mainBinding = ActivityMainBinding.inflate(LayoutInflater.from(this));
setContentView(mainBinding.getRoot());
mainBinding.button.setText("我是ViewBinding獲取的Button");
mainBinding.showBtn.setText("My name is guoguo ");
}
}
OK 介紹完了使用方法來說說我目前遇到的坑:
1.第一次編譯module生成了ActivityMainBinding 但是在運行時報錯告訴我找不到ActivityMainBinding 類,汗!
後來我把佈局文件所有控件都加了id後解決了,奇葩現在不明白爲什麼?(持續會復現,今天重複了幾次竟然沒有復現)
2. 是Button控件set英文自動轉大寫,
參考:https://blog.csdn.net/u014309440/article/details/51426462