Giter Club home page Giter Club logo

masteringandroiddatabinding's Introduction

masteringandroiddatabinding's People

Contributors

andych008 avatar demojameson avatar gitter-badger avatar iwgang avatar kymjs avatar liangfeidotme avatar llitfkitfk avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

masteringandroiddatabinding's Issues

测试 AvatarView 代码时发现问题

在 AvatarView.java 的 getDrawableFrom() 方法中发现执行到以下代码会出错:
bitmap = Bitmap.createBitmap(drawable.getIntrinsicWidth(),drawable.getIntrinsicHeight(),Bitmap.Config.ARGB_8888);
这个代码在运行时会抛出异常:
java.lang.IllegalArgumentException: width and height must be > 0

请问 DataBing 是否兼容Kotlin?

apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
apply plugin: 'kotlin-kapt'

编译可以通过但是没有生成代码,是否是上面的配置造成的?

这个是系统自己生成的吗?

我想问一下这个是系统自己生成的吗?
ContractBinding binding = DataBindingUtil.setContentView(this, R.layout.activity_custom_binding);
因为自己写的话是这样,这个类应该是系统生成的吧?需要手动设置名称吗?
ViewDataBinding viewDataBinding = DataBindingUtil.setContentView(this, R.layout.activity_custom_binding);

你好請問一個問題

能以在android:layout_width="match_parent" 這種用data binding 的方式去設定dp嗎?
android:layout_width="@{user.width}"
動態的去修改??

不同的activity使用不同的对象的问题

原话:修改 BasicActivity 的 onCreate 方法,用 DatabindingUtil.setContentView() 来替换掉 setContentView(),然后创建一个 user 对象,通过 binding.setUser(user) 与 variable 进行绑定。

那不同的activity应该会使用不一样的对象,比如登陆就有可能使用user对象,而一个详情界面就使用一个
从服务器取回来的Detail对象,但是都继承自BaseActivity,设置user对象不对吧?

app:imageUrl="@{imageUrl}能运行起来吗?

@BindingAdapter({"bind:imageUrl", "bind:error"})
public static void loadImage(ImageView view, String url, Drawable error) {
Picasso.with(view.getContext()).load(url).error(error).into(view);
}
我这样写提示TextView没有imageUrl方法报错。

请说明RoboBinding的侵入性太强?

你提到“其实在此之前,已经有些第三方的框架(RoboAndroid) 可以支持 MVVM 模型,无耐由于框架的侵入性太强,导致一直没有流行起来。”。 我是RoboBinding的贡献者之一,我无意看到你的这个页面。你能解释你说的侵入性太强吗?或者说,Android Data Binding比RoboBinding侵入性低吗?你如果能说说你的看法,我很感谢。

something I found

  1. Build with Android studio 3.0, and update gradle version. This would be a good idea for building to complete.
  2. // public static ColorDrawable convertColorToDrawable(int color) {, is supported by default, so do not need it.
  3. Thank you very much, that really make me clear.

Use Data binding in library

Hey developers, How can I use data binding in my application because I am new to data binding concept ?
I have an application module and one android lib. Module which has all the entites those are used in app module l..
So how can I use data binding in my app with lib. Module..
Which also include dynamic inflation of view based on parameter in some of the entities in library module 

多重 package name 的问题

您好,想请问下。
如果我的 debug BuildType 会在 Package Name 的最后加上 .debug 后缀。
或是不同 Flavor 会在 Package Name 后面加上其他的后缀,像是付费版和免费版的区别
这样子是否还能使用 DataBinding?
如果可行定义 Variable 要如何定义呢?

type="com.liangfeizc.databindingsamples.basic.User"  

像是 type 这边似乎只能写死某一 Package?

如何绑定dimension数据?

例如
android:layout_height="@{myView.height}"

这样直接写时编译报错:

Error:Execution failed for task ':app:compileDebugJavaWithJavac'.
java.lang.RuntimeException: Found data binding errors.
***/ data binding error ***msg:Cannot find the setter for attribute 'android:layout_height' with parameter
type float.
file:../example.xml loc:29:45 - 29:63 ***
\ data binding error ***

求指点

binding.setUser(user)报错

您好,很感谢您的开源库,最近在学习的时候发现无论是使用您的项目或者自己去是实现,这行代码总是报错,想请教下这个是为什么?哪里出了问题?

onClick 如何传多个参数

public class MyHandlers {
    public void onClickFriend(View view) { ... }
    public void onClickEnemy(View view) { ... }
}
 <TextView android:layout_width="wrap_content"
           android:layout_height="wrap_content"
           android:text="@{user.lastName}"
           android:onClick="@{user.isFriend ? handlers.onClickFriend : handlers.onClickEnemy}"/>

你好,在对一个View�设置点击事件时,onClick 只把当前的View作为传递参数,如果要传多个参数,请问要怎么写?

No resource type specified (at 'text' with value '@{user.firstName}').

下载并编译,发生错误:
D:\me\project_others\MasteringAndroidDataBinding-master\app\src\main\res\layout\view_stub.xml
Error:(14, 27) No resource type specified (at 'text' with value '@{user.firstName}').
Error:(20, 27) No resource type specified (at 'text' with value '@{user.lastName}').

android studio : 1.5
classpath 'com.android.tools.build:gradle:1.5.0'
classpath "com.android.databinding:dataBinder:1.0-rc1"

include

include 的使用中的button 命名activity传入的是小写的to toast ,为什么运行后显示的是大写的 TO TOAST

Data Binding QQ 交流群

为方便交流,我建了一个 QQ 群,感兴趣的同学可以进来聊聊

  • Data Binding 交流群: 324112728

data bind view tag isn't correct on view:null

data bind view tag isn't correct on view:null

布局文件

<data>

    <variable
        name="user"
        type="org.xxx.bean.User" />
</data>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@color/line"
    android:gravity="center"
    android:orientation="vertical"
    tools:context="org.xxx.module.invite.InviteActivity">


    <TextView
        android:id="@+id/tv_currentUserName"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_margin="@dimen/x16"
        android:gravity="center"
        android:text="@{user.nick}"
        android:textColor="@color/black_p50" />

    <include layout="@layout/fragment_other_plus" />


</LinearLayout>

在Activity类中
@OverRide
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
ActivityInviteBinding dataBinding = DataBindingUtil.setContentView(this, R.layout.activity_invite);
User currentUser = User.getCurrentUser(getApplicationContext(), User.class);
dataBinding.setUser(currentUser);
}

自定义view的绑定

您好,请问类似这种的
<com.cn.custom.TableView
android:id="@+id/item1"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
因为TableView的业务非常复杂,所以绑定的数据需要在tableView的layout文件中。这样的话又如何跟这个id对应起来呢

非根节点中include引发奔溃的问题已经解决了

这是我的代码,测试正常运行

<data classs="ActivityDataBinding">

    <variable
        name="user"
        type="com.kaelthas.demo.bean.User"/>
</data>

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">


    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@{user.userName}"/>

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@{user.passWord}"/>

    <Button
        android:id="@+id/btn"
        android:text="点击改变信息"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"/>


    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content">
        <include layout="@layout/test"/>
    </LinearLayout>
</LinearLayout>

databinding not error,but Build failed

FAILED

FAILURE: Build failed with an exception.

  • What went wrong:
    Execution failed for task ':t1:compileBetaDebugJavaWithJavac'.

    Compilation failed; see the compiler error output for details.

# * Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.

BUILD FAILED

一个很奇怪的bug,fragment的onclick

我在fragment的布局中绑定点击事件:

<ImageView
                    android:id="@+id/iv_user_head_pic"
                    android:layout_width="60dp"
                    android:layout_height="60dp"
                    android:onClick="@{() -> userFragmentViewModel.getPresenter().onClick(1)}"
                    android:src="@drawable/home_user_place_holder"
                    app:imageUrlCircle="@{userFragmentViewModel.getUserHeadPicUrl()}" />

它在生成的FragmentBinding中报错:

                // userFragmentViewModel != null
                boolean userFragmentViewMode = false;
                // userFragmentViewModel.getPresenter() != null
                boolean UserFragmentViewMode1 = false;
                // userFragmentViewModel
                com.msc.grus_japonenis.main.userfragment.UserFragmentViewModel userFragmentViewMode = mUserFragmentViewMod;
                // userFragmentViewModel.getPresenter()
                com.msc.grus_japonenis.main.userfragment.UserFragmentPresenter userFragmentViewMode1 = null;

                userFragmentViewMode = (userFragmentViewMode) != (null);
                if (userFragmentViewMode) {

新建的userFragmentViewMode 和 判空用的 变量重名。

同样的代码在activity中就是ok的,会产生两个不一样的变量名。

而且FragmentBinding是不能修改

NameCard 类和 activity_attrribute_setters.xml 文件有误

在 activity_attribute_setters.xml 文件中,这样使用了 NameCard 类:
<com.liangfeizc.databinding.view.NameCard
android:layout_width="match_parent"
android:layout_height="200dp"
android:layout_marginEnd="@dimen/largePadding"
android:layout_marginLeft="@dimen/largePadding"
android:layout_marginRight="@dimen/largePadding"
android:layout_marginStart="@dimen/largePadding"
android:gravity="center"
app:age="27"
app:firstName="@{@string/firstName}"
app:lastName="@{@string/lastName}"/>
经过我的测试发现,只有 app:age 属性能够使用,app:firstName 属性和 app:lastName 属性会报错。

我将 style.xml 中的 NameCard style 改为如下形式就可以正常使用了:




Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.