我制作了一个被放大并多次创建的viewstub.它使用的布局包括一个“删除”按钮,用于隐藏视点图(或将其放平).
当我创建一个新的viewstub时,我将其称为:
ViewStub eventStub = new ViewStub(this);
eventStub.setLayoutResource(R.layout.event_container);
eventContainerMain.addView(eventStub);
eventStub.inflate();
问题是,在viewtub布局中,删除按钮是使用新的viewtub创建的.那么,如何使删除按钮隐藏其中的viewstubthat?
最重要的是,如何使其他方法仅影响视图内部?
解决方法:
您不太正确地使用视图存根…
首先,使用以下命令将视图指向要复制的视图所需的布局:
ViewStub stub = new ViewStub(this);
stub.setLayoutResource(R.layout.viewStubLayout);
stub.inflate();
接下来,进入您的XML,并使用正确的方法(确保在您的类中声明)确保布局上的按钮具有android:onClick选项.
对于删除视图存根,您实际上并没有删除它们……您应该使用.setVisibility(GONE)或.setVisibility(VISIBLE)来管理用户是否可以看到它.这将用于指向onClick的方法中.另外,在引用对象所在的视图存根时使用“ this”将允许您管理用户单击的指定视图中发生的情况.