2011-05-12 88 views
6

我试图使用VIEWSTUB内合并tag.and其工作well.I'm能够赶上onclicklistenr ViewStub母公司 button.But我要访问的按钮在viewstub里面。无法访问ViewStub'child

1,主要的xml:

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

2.view存根布局

<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> 

我增加观看存根在活动......在这里,我想消防点击事件按钮取消。怎么可能

+0

Plz通过点击编辑来查看完整代码 – Sameer 2011-05-12 06:34:43

回答

20

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

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

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

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

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

  • 的通货膨胀之前ViewStub - 你实际上不能删除它。不过,没有必要,因为ViewStub“没有维度,它不会画任何东西,也不会以任何方式参与布局”。

  • 膨胀后 - 您只需将ViewStub.inflate()方法返回的视图做任何你想做的事情 - 例如隐藏它。

+0

谢谢Kamen ..如果我想从我的屏幕上动态删除存根。如何删除它? – Sameer 2011-05-12 09:03:06

+0

我明白了 – Sameer 2011-05-12 13:47:05