4

我做了一个viewstub充气并再次创建了很多次。它使用的布局包括一个“删除”按钮,该按钮隐藏了viewstub(或缩小它)。

当我创建一个新viewstub代码时,我称之为:

ViewStub eventStub = new ViewStub(this);
            eventStub.setLayoutResource(R.layout.event_container);
            eventContainerMain.addView(eventStub);
            eventStub.inflate();

问题是,在viewstub布局中,删除按钮是用新的viewstub. 那么如何让删除按钮隐藏viewstub里面的东西呢?

最重要的是,如何让其他方法只影响其内部的视图

4

2 回答 2

5

您没有正确使用视图存根...

首先,使用以下命令将您的视图指向您想要复制的视图的布局:

ViewStub stub = new ViewStub(this);
    stub.setLayoutResource(R.layout.viewStubLayout);
    stub.inflate();

接下来,进入您的 XML 并确保布局上的按钮具有android:onClick使用正确方法的选项,该方法在您的类中声明。

对于删除视图存根,您实际上并没有删除它们……您应该使用.setVisibility(GONE).setVisibility(VISIBLE)管理用户是否可以看到它。这将用于所针对的方法中onClick。此外,this在引用对象所在的视图存根时使用“”将允许您管理用户单击的指定视图中发生的情况。

于 2013-06-03T20:14:32.633 回答
0

您不会以您希望删除视图存根的方式删除它们。膨胀时,ViewStub 会从父对象中消失,并被 View 对象替换。如果要在创建的视图上使用方法,可以使用ViewStubxml 文件中的 android:inflatedId 属性。

您说您正在使用的布局有一个“删除”按钮,可以“缩小ViewStubViewStub. 一旦 aViewStub膨胀,它就会自动从父级中删除,因此在膨胀之后就不Viewstub存在要删除的 a。

听起来您想要的是动态删除View由膨胀的 ViewStub 创建的。为此,我建议查看动态添加和删除 Android 中的视图?

于 2013-05-28T17:11:28.980 回答