- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
无论如何都可以将 viewStubs 与 dataBinding 一起使用吗? ViewStubProxy 有帮助吗?
我的 stub 电流看起来像这样:
<ViewStub
android:id="@+id/stub_import"
android:inflatedId="@+id/panel_import"
android:layout="@layout/progress_overlay"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_gravity="@{myobject.bottom ? bottom:top}" />
但是当我膨胀 viewStub 时,这个布局将被替换,那么 ViewStubs 如何与 android dataBinding 一起使用?
这是我从 docs 中看到的:
ViewStubs
ViewStub 与普通的 View 有点不同。他们出发 不可见以及当它们可见或被明确告知时 膨胀,他们通过膨胀另一个来取代自己在布局中 布局。
因为 ViewStub 基本上从 View 层次结构中消失了, 绑定(bind)对象中的 View 也必须消失以允许 收藏。因为 View 是最终的,所以 ViewStubProxy 对象需要 ViewStub 的位置,使开发人员可以访问 ViewStub 当它存在并且当 ViewStub 已经膨胀了。
当膨胀另一个布局时,必须为 新版面。因此,ViewStubProxy 必须监听 ViewStub 的 ViewStub.OnInflateListener 并在那时建立绑定(bind)。 由于只能存在一个,ViewStubProxy 允许开发人员 在其上设置一个 OnInflateListener,它将在建立后调用 绑定(bind)。
最佳答案
只需按照文档中的说明设置监听器即可:
mBinding.viewStub.setOnInflateListener(new ViewStub.OnInflateListener() {
@Override
public void onInflate(ViewStub stub, View inflated) {
ViewStubBinding binding = DataBindingUtil.bind(inflated);
binding.setModel(model);
}
});
public void inflateViewStub(View view) {
if (!mBinding.viewStub.isInflated()) {
mBinding.viewStub.getViewStub().inflate();
}
}
关于Android 数据绑定(bind) - 如何使用 ViewStub 进行数据绑定(bind),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34712952/
我实现了这样的自定义 View : public class HeaderView extends LinearLayout { @Bind(R.id.bill_summary_layout)
我对 View stub 有疑问。 这是我java文件中的ViewStub ViewStub stub = (ViewStub) findViewById(R.id.stub1); ArrayAdap
我得到一个错误 07-04 01:49:56.325: E/AndroidRuntime(9693): java.lang.NullPointerException 同时尝试在交易完成后在 Fragm
这是我的用例: 我想在运行时更改我的膨胀布局,比如首先我膨胀布局 a,然后一段时间后我想显示布局 B,然后是布局 C,等等。 我在某处读到,与其在主布局中包含布局然后隐藏/取消隐藏,不如使用 view
LinearLayout 在 iflating ViewStub 后没有边距。充气后我只能通过编程方式设置边距还是有其他方法? 最佳答案 我遇到了同样的问题,但使用的是 RelativeLayout。
在我的应用程序中,我有一个微调器和一个 ViewStub,根据从微调器中选择的用户项目,我必须膨胀不同的布局并在微调器下方显示膨胀的布局。当我的应用程序启动时,ViewStub 会在第一次从微调器中选
我有一个 ListView,其中 listview 的每一行都包含大约 10 个 ImageButton。这些按钮中的大多数都具有可见性 = 消失并且仅在非常罕见的情况下出现。我想知道是否值得将这些
我想按语法在 View 组中定位一个 View stub 。 我尝试使用 setLayoutParams() 方法,但它不适用于 View stub 。 请提出任何解决方案。 下面是我的代码。 set
我正在尝试开发一个相当复杂的 appwidget,它可以通过编程方式更改它的一部分。 Android 建议这样的事情使用 ViewStub 小部件。 根据 AppWidgets page Remote
我正在研究您启动 Navigation Drawer Activity 时生成的示例代码。在 Android 工作室中。我想做的是以编程方式更改包含的 View ,我的研究表明 ViewStub 是做
我的布局上有一些 stub ,我想知道是否可以为它们设置动画,以便它们从一个滑到另一个。 非常感谢! 最佳答案 您可以使用 ViewFlipper 作为一个简单的解决方案。只需使用 ViewFlipp
我想将 ViewStub 添加到我的布局中。 ViewStub 应该是这样的,如 xml: 我已经想出了这段代码,但布局没有显示。 我正在重复使用 id,因为我要删除并再次添加 stub 。我猜代码
我有一个元素,里面有苹果、梨和柠檬。我为苹果、梨和柠檬做了单独的布局。 如果选择了任何元素,我想获取该元素的布局。我尝试根据使用 inflate() 函数选择的布局将正确的布局放入 viewStub。
我创建了一个使用 ViewStub 的库并将其集成到我的项目中。当我运行应用程序时,我得到 java.lang.IllegalArgumentException: ViewStub must have
我最近发现了一个名为 ViewStub 的类,它可用于“延迟加载”布局资源。用法非常简单: 在我使用的布局文件中: 在我的代码中: var stub = this.FindViewById(Reso
我没有发现任何 bool 方法可以完成这项任务。我可以通过检查 viewStub 的 id 是否更改为指定为 inflatedid 的那个来做到这一点吗? Java代码: protected
我是 Android 开发的新手。 我从 https://developer.android.com/training/improving-layouts/loading-ondemand.html
几天前,我遇到了新的 Twitter API(版本 3.1.1),我试图复制我在 tweets 列表中看到的效果。 不幸的是我是新用户,我不能发布图片,所以我试图解释我在说什么 有推文列表( List
膨胀包含 fragment 的 View stub 时是否有任何问题。在 crashalytics 中我很少看到 Fatal Exception: android.view.InflateExcept
我是安卓新手,我一直在做一个项目,在我的新闻提要页面中,我试图包含一个模块化的提要 RecyclerView,它显示一个具有不同答案形式的问题,根据问题类型而变化。到目前为止,我的做法是使用 incl
我是一名优秀的程序员,十分优秀!