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

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

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

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

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

最佳答案

你没有完全正确地使用 View stub ......

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

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

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

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

关于android - 创建新 View 时动态隐藏 View stub ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16679597/

10-09 01:32