问题标签 [viewstub]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
android - ViewStub 和 View Visibility.GONE 的区别
这个问题被问了多次,但我从来没有找到明确的答案,请不要投反对票,如果 ViewStub 测量为 0,我们可以在需要时膨胀视图,第一次显示 ViewStub 的视图(进度)我们膨胀它,当我们想隐藏它时,我们设置 Visibility.GONE,然后我们需要它,我们设置 Visibility.VISIBLE。我想了解 viewStub 的目的,如果为了进一步使用我们设置可见性 VISIBLE/GONE 并且除此之外,如果 ViewStub 的高度为 0,则 View with Visibility GONE 的高度也为 0,我的意思是没有通货膨胀。
android - 如何使用 View Stub 提高性能,然后在运行时在容器中添加视图
我知道我可以创建一个视图存根
并通过 ViewStub stub = (ViewStub) findViewById(R.id.stub); 查看膨胀 = stub.inflate();
但是它在性能上有何不同,然后使用线性布局并在运行时添加子视图
java - ViewStub 没有膨胀并且布局保持空白 - Android
我正在研究您Navigation Drawer Activity
在 Android Studio 中启动时生成的示例代码。我想做的是以编程方式更改包含的视图,我的研究表明 ViewStub 是最好的方法。但是我无法让它工作。对于有问题的主要布局,涉及 3 个文件:
活动主.xml:
app_bar_main.xml:
content_main.xml:
以下是我的 MainActivity.java。似乎什么都没有发生,并且 content_main 似乎从未出现过。这可能是可见性问题吗?
android - 删除或添加视图与 ViewStub
.remove() .addView() 和使用 ViewStub 有什么区别?ViewStub 如何提高布局渲染效率?
android - 安卓工作,但 ViewStub 没有,为什么?
我在 FrameLayout 中使用 ViewStub,这样我就可以在第一次打开应用程序时使用教程视图来填充它。
我的活动.xml
我正在膨胀的视图被称为intro_landing1.xml
,它是一个RelativeLayout。
intro_landing1.xml:
在我的 Activity onCreate 中,我使用了两种不同的方法来为 ViewStub 充气,但它们都不起作用(我看不到 intro_landing1 视图)。
第一种方法 - 设置可见性:
第二种方法 - 膨胀 ViewStub:
使用第二种方法,我通过执行 inflatedView.getTag 记录了返回的视图(inflatedView),它返回了 intro_landing1 RelativeLayout 的标签“RelativeLayoutIntroViewTag”,因此实际上返回了视图,但我没有看到它。
为了确保在视图树层次结构中正确定位 ViewStub,我使用<include/>
了 Activity.xml 中的标签,而不是像这样的 ViewStub:
这有效。
为什么在可见性变化或膨胀后不显示 ViewStub?
谢谢!
android - Android ViewStub change layouts programmatically
This is my use case:
I want to change my inflated layout at run time, say first I inflate layout a, then after some time I want to show layout B, then layout C etc.
I read somewhere that rather than including layouts in main layout and then hiding/unhiding I should use viewstub and inflate.
My issue now is when I inflate the first layout it works fine but the next time when I try to inflate the second layout I get the stub null.
My understanding is the Viewstub is a container in which the layouts are being loaded, if so why am I not getting the ViewStub when trying to load the second layout? (So this means when I inflated the first layout (A) the layout in which the ViewStub was placed was removed completely?)
I'm looking for any pointers to implementing my usecase with Viewstub or alternatives.
android - 两种视图添加方法之间的性能差异
动态添加视图(使用 ViewGroup 的添加/删除视图方法)或将它们放入静态布局 xml 文件并让它编译成二进制形式并在运行时膨胀(常规方式)在性能方面会有什么差异?
我知道 ViewStub 是一种选择,但我想知道根本不充气是否有区别。
谢谢
android - 以编程方式将 ViewStub 添加到 RelativeLayout,而不是在第一个 ViewStub 下方添加第二个 ViewStub
嘿,我将在下面的代码中简要描述我所做的事情:我创建一个 ViewStub (Vs) 并将其添加到 RelativeLayout (Rl)。然后我想在同一个 RL 中添加一个新的 Vs,所以我创建了 stub2 并将其添加到 rl。然后我参考第一个和第二个 Vs (rlInf1 ,rlInf2) 的 Rl (它是膨胀的)然后我设置 Rl.Layoutparams 以便 rlInf2 应该低于 rlInf1 但它们是重叠的。如何设置 LayoutParams 以使新的 ViewStub 低于旧的?有任何想法吗?
(我没有在 XML 中添加 ViewStub,而是在 Java 代码中添加)
java - android - 以编程方式替换布局并使用 ViewStub
我正在尝试使用多个提要项目实现新闻提要类型的布局。新闻源项目在折叠时将具有特定布局,并且当单击该项目时,此布局将被“展开”版本替换。
我通过使用自定义项目的 ListView 实现了这一点。自定义项 XML 布局文件有一个 ViewStub,这是我用来来回更改布局的。不过,现在我想将布局“迁移”到 RecyclerView,并遵循 ViewHolder 设计模式。后者是我首先尝试的,我遇到了各种各样的问题。
我的方法如下:
获取折叠布局(events_list_item_content)和展开布局(events_list_item_selected_content)的参考;
获取对要设置为 ViewStub 布局 (view_stub_layout) 的简单布局资源文件的引用。
获取 ViewStub 引用,设置其布局 (view_stub_layout) 膨胀,并将折叠的布局视图添加到此布局(第一次创建提要时,它的所有项目都将被折叠)。
(初始化后,单击项目时)从 ViewStubLayout 中删除上一个视图(布局),添加其他类型的布局。
这是我的自定义适配器类:
但是,在测试时,Newsfeed 应该出现的页面是空白的。
android - 视图中的视图不更新(不占用高度)
我有一个配置为wrap_content
. 如果用户未登录,我会在该视图中显示一个视图。该视图膨胀为ViewStub
.
在屏幕上的第一个单元格中,一切都很好。但是,如果我滚动到屏幕外的单元格,就会出错。视野不占他的高度。
在第三个单元格android:id="@+id/background"
中View_NoLoggedInView
(中的那个ViewStub
)没有占用他的高度。
我删除了不相关的代码以使类和布局更具可读性。
有谁知道为什么第三个单元格只有在他离开屏幕然后再次进入时才会更新,我该如何解决这个问题?
在这里,您会发现 gif 格式的视觉问题:
Viewholder AXML 布局:
膨胀的 View_NoLoggedInView viewstub 布局 Axml 代码:
这是课程:
}