j2e*_*nue 11 data-binding android
我目前在android中有一个bool.xml文件,如下所示:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<bool name="showAds">true</bool>
</resources>
Run Code Online (Sandbox Code Playgroud)
现在我有一个使用数据绑定的layout.xml文件.我想基于上面定义的布尔showAds来显示或隐藏adView的可视性.到目前为止我有这个:
<com.google.android.gms.ads.AdView
android:id="@+id/adView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:visibility="@{@bool/showAds ? View.Visible:View:gone}"
ads:adSize="BANNER"
ads:adUnitId="ca-app-pub-1234567/34343">
Run Code Online (Sandbox Code Playgroud)
但它没有编译.如何获取布尔值来决定广告是否应该显示?语法错误.
Roh*_*rma 29
更正条件的语法View.Visible:View:gone
android:visibility="@{@bool/showAds ? View.VISIBLE:View.GONE}"
Run Code Online (Sandbox Code Playgroud)
并且您需要在数据部分中导入View:
<data>
<import type="android.view.View"/>
</data>
Run Code Online (Sandbox Code Playgroud)
Til*_*ill 13
如果您不喜欢添加View导入(在需要的每个布局中),您只需定义带@BindingConversion注释的方法:
@BindingConversion
public static int convertBooleanToVisibility(boolean visible) {
return visible ? View.VISIBLE : View.GONE;
}
Run Code Online (Sandbox Code Playgroud)
带注释的方法可以在项目中的任何Java文件中.
然后你可以简单地使用
android:visibility="@{@bool/showAds}"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10132 次 |
| 最近记录: |