不能访问ViewStub'child [英] Not able to access ViewStub'child

查看:137
本文介绍了不能访问ViewStub'child的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想使用VIEWSTUB合并内tag.and其工作well.I'm能够赶上 onclicklistenr ViewStub的父 button.But我想访问的按钮是viewstub内部。

I am trying to use VIEWSTUB inside the merge tag.and its working well.I'm able to catch onclicklistenr of ViewStub's parent button.But i want to access the button that is inside the viewstub.

1,主要的xml:

<merge>
<LinearLayout>
<Button></Button>
<ViewStub></ViewStub>
</LinearLayout>
</merge>

2.view存根布局                

2.view stub layout

<Button android:id="@+id/button_cancel" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:minWidth="100dip"
android:text="Next" />
<ImageView 
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id="@+id/imageView"
android:background="@drawable/golden_gate"
/>
</LinearLayout>

我夸大观点存根一个活动......在这里,我想火点击按钮事件cancel.How将有可能

I am inflating view stub in an activity...here i want to fire click event on button cancel.How it will be possible

推荐答案

让我们假设你的ViewStub ID是view_stub。你需要做的活动如下:

Let's suppose your ViewStub ID is view_stub. You need to do the following in the activity:

ViewStub viewStub = (ViewStub) findViewById(R.id.view_stub);
View inflatedView = viewStub.inflate();
Button button = (Button) inflatedView.findViewById(R.id.button_cancel);

现在你可以做任何你想要的按钮:)也就是说,充气方法返回的存根布局,其中包含从XML文件中的实际内容。

Now you can do whatever you want with the button :) That is, the inflate method returns the stub layout which contains the actual elements from the XML file.

当然,你总是可以有onClick的XML属性...

Of course, you can always have the onClick XML attribute...

作为除去ViewStub - 问题是双重的(检查<一href="http://developer.android.com/resources/articles/layout-tricks-stubs.html">http://developer.android.com/resources/articles/layout-tricks-stubs.html):

As for removing the ViewStub - the question is two-fold (check http://developer.android.com/resources/articles/layout-tricks-stubs.html):

  • 通胀ViewStub之前 - 你无法将其删除。有没有必要,不过,因为ViewStub没有尺寸,它不画任何东西,不参与任何形式的布局。

  • before inflation of the ViewStub - you cannot actually remove it. There's no need, though, since ViewStub "has no dimension, it does not draw anything and does not participate in the layout in any way".

通胀因素后 - 你只需要通过ViewStub.inflate()方法返回的视图,做任何你想做的事情 - 例如,隐藏

after inflation - you just take the View returned by the ViewStub.inflate() method and do whatever you want with it - for example, hide it.

这篇关于不能访问ViewStub'child的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆