美文网首页
Databinding 的使用

Databinding 的使用

作者: 小梦想家北冥有鱼 | 来源:发表于2017-06-13 22:30 被阅读0次

    在as当中怎么使用呢?
    在app build.gradle ,放入android目录下,如下

       // dataBinding 加入
      dataBinding {
        enabled = true
      }
    

    1.常见语言环境是在Activity、Fragment和Adapter(可以是在ListView、RecyclerView);
    setContentView是来源于 AppCompatActivity当中,layout布局文件当中以layout开头,而不是传统的5大布局,不过,子布局依然是;

    @Override
    public void setContentView(@LayoutRes int layoutResID) {
           
        mBaseBinding = DataBindingUtil.inflate(LayoutInflater.from(this), R.layout.activity_base, null, false);
        bindingView = DataBindingUtil.inflate(getLayoutInflater(), layoutResID, null, false);
    }
    

    对于布局当中的ImageView、TextView只需要通过mBaseBinding + id 来链接,这里是DrawerLayout、NavigationView说明:

       drawerLayout = mBinding.drawerLayout;
       navView = mBinding.navView;
    

    (2).在res文件夹下是以layout开头,而不是传统的RelativeLayout、LinearLayout等开头,如下是一个layout.xml文件;如果该文件名为layout_fragment.xml那么会默认生成一个FragmentLayoutDataBinding类;

       <?xml version="1.0" encoding="utf-8"?>
       <layout xmlns:android="http://schemas.android.com/apk/res/android">
    
       <LinearLayout
        android:id="@+id/ll_root"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="@color/colorPageBg"
        android:orientation="vertical">
    
        <!--有可能直接显示(固定的布局,非必须,按需要添加)-->
        <RelativeLayout
            android:id="@+id/rl_content_part"
            android:layout_width="match_parent"
            android:layout_height="wrap_content" />
    
    
        <RelativeLayout
            android:id="@+id/container"
            android:layout_width="match_parent"
            android:layout_height="match_parent">
    
    
            <!--加载失败-->
            <LinearLayout
                android:id="@+id/ll_error_refresh"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:gravity="center"
                android:orientation="vertical"
                android:visibility="gone">
    
                <ImageView
                    android:id="@+id/img_err"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:src="@drawable/load_err" />
    
                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_marginTop="15dp"
                    android:text="加载失败,点击重试"
                    android:textSize="15sp" />
            </LinearLayout>
    
            <!--加载中..-->
            <LinearLayout
                android:id="@+id/ll_progress_bar"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_centerHorizontal="true"
                android:layout_marginTop="80dp"
                android:gravity="center_vertical">
    
                <ImageView
                    android:id="@+id/img_progress"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:src="@drawable/yun_anim" />
    
                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_marginLeft="10dp"
                    android:text="努力加载中..."
                    android:textColor="@color/colorTabText"
                    android:textSize="14sp" />
    
            </LinearLayout>
        </RelativeLayout>
    </LinearLayout>
    </layout>
    

    在App->build文件下,即我们不需要关注


    image.png

    3.在Adapter当中是怎么使用的呢?
    我们比较常用的有ListView、GridView以及RecyclerView,都需要Adapter,那么我们取巧,下面以RecyclerView为例;

    相关文章

      网友评论

          本文标题:Databinding 的使用

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