1. 程式人生 > >Databinding在Activity和Fragment中使用的注意事項

Databinding在Activity和Fragment中使用的注意事項

Databinding在處理檢視資料繫結上是很方便的。但是需要注意一下,在Activity中,可以直接使用

        mBinding = DataBindingUtil.setContentView(this, R.layout.test_activity);
        testViewModel = new TestViewModel(this,mBinding);
        mBinding.setViewModel(testViewModel);

但是在Fragment中,不能這麼用,否則的話會出現載入展示的一些問題。Fragment中應當這麼使用:

        mBinding =  DataBindingUtil.inflate(inflater, R.layout.test_fragment_idcard,container,false);
        //mBinding = DataBindingUtil.setContentView(getActivity(),R.layout.station_fragment_home);
        viewModel = new TestIDCardViewModel(this,mBinding);
        mBinding.setViewModel(viewModel);

        View view = mBinding.getRoot();//inflater.inflate(R.layout.test_fragment_idcard, container, false);
        EventBusActivityScope.getDefault(_mActivity).register(this);
        initView(view);


        return view;

首先通過DataBindingUtil.inflate初始化binding物件,然後通過.getRoot()獲取操作檢視,並且在onCreateView中返回該檢視。否則會導致binding不生效。

相關推薦

Databinding在ActivityFragment使用的注意事項

Databinding在處理檢視資料繫結上是很方便的。但是需要注意一下,在Activity中,可以直接使用 mBinding = DataBindingUtil.setContentView(this, R.layout.test_activity);

C++#ifndef, #define, #endif的作用使用的注意事項

在C++語言程式設計中,我們經常會接觸到標頭檔案,比如說宣告類,或者宣告名稱空間等,而每次在編寫xxx.h的標頭檔案時,程式設計書上都會讓我們在程式碼的前後加上如下的三句程式碼: #ifndef XXX_H_ #define XXX_H_ …… #endif 其中……代表

TabLayout item 的自定義 & 使用 Fragment注意事項

採用預設模式: 自定義 item 後(tabitem): 在 Fragment 採用 TabLayout + ViewPager 佈局: public class OrderFragment extends Fragment { private T

javaArrayListLinkedList使用注意事項

1. ArrayList和LinkedList的訪問方式 由於ArrayList實現了RandomAccess訪問方式所以在迴圈讀取的時候我們採用下標的方式訪問。 如果我們使用foreach方式訪問(即:偽碼) for(Object obj : ArrayList){ Sy

python迴圈刪除listdict型別注意事項

列表和字典在迴圈操作(增刪)時,其長度會改變 # 刪除 li = [11, 22, 33, 44, 'rock']中索引為單數的元素 # 方法一 del li[1::2] print(li) # [11, 33, 'rock'] # 方法二 new_li = [] for index in ra

java繼承的理解,super關鍵字,方法的重寫過載以及注意事項理解

一、類的繼承理解 在java中類的繼承是指:在一個現有類的基礎之上去構建一個新的類,構建出來的新的類被稱為子類,現有類是父類,子類會自動擁有父類所有可繼承的屬性和方法。繼承類是現有類的更具體一些,繼承類可能只擁有一部分父類的屬性和方法。 如圖,這就表示了繼承類是父類的一種更具體形式

VMWare安裝Mac OS LionXCode的注意事項

終極方案:去買個MacBookPro吧,比Windows筆記本好用100倍。 1. MacOS安裝 a) 請使用VMWare 7.1.x,我用的是7.1.4,註冊碼是網上找的。 b) 為了順利安裝VMWare補丁,一定要將VMWare裝在C盤預設位置。一般為 C:\pr

Virtualbox下安裝CentOSUbuntu過程注意事項

1、Virtualbox下安裝CentOS過程中的注意事項: (1)在安裝Oracle VM VirtualBox的時候一定要保證安裝目錄的磁碟空間至少要大於你分配虛擬空間,保證安裝過程有足夠的磁碟空間。一般建議8-10G。如果安裝過程出現如下圖所示錯誤ID:BLKCACH

Calendar的get()、set()roll()方法注意事項

轉載:http://blog.sina.com.cn/s/blog_677873910102vcp7.html 示例程式碼: Calendar c = Calendar.getInstance();   c.set(2014, Ca

Fragment切換注意事項

最近在使用fragment,現將其切換時的一些小問題總結如下: 首先是程式碼: FragmentManager fm1 = getSupportFragmentManager(); FragmentTransaction transaction = fm1.begi

java 1.5 自動拆箱裝箱的注意事項

背景 java1.5後引入了自動裝箱和自動拆箱的概念 自動拆箱:將引用型別轉化為基本資料型別 自動裝箱:將基本資料型別裝為引用型別 但是實際使用中,什麼情況自動拆箱什麼情況自動裝箱呢? 自動裝箱 Integer i = 100; (呼叫Integer.valueOf(100)) 這裡存

Handler在ActivityFragment的記憶體洩露問題

解決方法:將handler宣告為static靜態方法 在activity中: private final MyHandler handler=new MyHandler(this);//在activity中宣告handler private static class MyHa

el表示式用==eq的注意事項

eq和==一般是一樣的,但是注意el表示式中使用==判斷的時候不允許有空格,例如: ${job.jobName==requestScope.user.job.jobName?"selected='selected'":''   }最後加了空格導致判斷錯誤,會報 javax.el.Prope

sqlsessionsqlsessionfactory的注意事項

sqlsession的作用有哪些? 1、向sql語句傳入引數。 2、執行sql語句。 3、獲取執行sql語句結果。 4、事務的控制。 如何得到sqlsession? 1、通過配置檔案獲取資料庫連線相關資訊。 2、通過配置資訊構建sqlsessionfactory。 3、通過sqlsess

通訊錄上線注意事項

1、php個平臺訪問java各平介面臺網關的設定 以適配平臺訪問ccup介面為例 ccup真實物理機ip及埠和vip機器埠示例見E:\html\pim\php_aspire-www\heonline\webroot\ddsDemo\doc\java.php [+1]http://192.168.19.1

關於使用rempx的注意事項

css中的單位很多,%、px、em、rem,以及比較新的vw、vh等。每個單位都有特定的用途,比如當需要設定一個矩形的寬高比為16:9,並且隨螢幕寬度自適應時,除了用%,其他單位是很難做到的。所以不存在說某個單位是錯誤的,某個單位是最好的這種說法。 那本文說的頁面適配,指的

陣列宣告定義的注意事項

一、不允許陣列拷貝和賦值int a[] = {1,2,3}; //含有3個整數的陣列int a2[]= a;//錯誤:不允許使用一個數組初始化另一個數組a2 = a; //錯誤:不能把一個數組直接賦值給另一個數組二、複雜的陣列宣告int arr[10];int *ptrs[1

BindingTemplateBinding的注意事項

在實際的資料繫結中遇到一些關係模板中資料繫結的問題。 現在說下兩者的區別: 1、TemplateBinding的資料繫結是單向的,從資料來源到目標。 2、TemplateBinding不能對資料物件進行自動轉換,資料來源和目標的資料型別不同時候,需要自己寫轉換器。 3、Binding

BatchNorm層訓練測試的注意事項

1:BatchNormal層: BN層的設定一般是按照conv->bn->scale->relu的順序來形成一個block。 關於bn,有一個注意點,caffe實現中的use_glo

Linux核心編譯grub安裝注意事項(修改預設啟動項)

一般的過程不多說。 下載核心原始碼,make menuconfig , make , make modules_install, make install等一系列。 要注意的事情: 1.安裝模組時,要用特殊引數,否則編譯出來的initrd.img特別大有300M,而