Android 设置ContentView而不显示屏幕(尚未)?

Android 设置ContentView而不显示屏幕(尚未)?,android,Android,Android活动中是否有办法执行setContentView(),这样我就可以让Android计算布局,这样我就可以通过findViewByID()成功获取其中的视图,,但还没有显示它 这将出现在一个应用程序中,其中包含一个主活动和一些从属活动,我想启动但不显示的活动将是一个从属活动。(换句话说,主视图已经填满了屏幕,因此只需将新视图隐藏在视图层次结构的底部就足够了)。活动将以“标准”启动模式启动 如果有一种方法可以通过将其保持在视图层次结构的底部来实现,那么当我确实希望显示它时,如何将其强制

Android活动中是否有办法执行setContentView(),这样我就可以让Android计算布局,这样我就可以通过findViewByID()成功获取其中的视图,,但还没有显示它

这将出现在一个应用程序中,其中包含一个主活动和一些从属活动,我想启动但不显示的活动将是一个从属活动。(换句话说,主视图已经填满了屏幕,因此只需将新视图隐藏在视图层次结构的底部就足够了)。活动将以“标准”启动模式启动

如果有一种方法可以通过将其保持在视图层次结构的底部来实现,那么当我确实希望显示它时,如何将其强制到顶部


注意:这个应用程序已经存在——它是一个大型、复杂的工业应用程序,有14个活动,是为Android 2.35和2.36编写的,因此重新设计它以使用片段而不是活动是不切实际的。我只想将一个活动修改为不显示,或者只显示在视图层次结构的底部,使其不可见

我对安卓相当陌生,但我认为使用片段可以很容易地做到这一点。例如,一个片段将是当前显示的片段,另一个片段将使用隐藏的父视图进行过度显示。当您需要显示其他片段时,只需将布局设置为可见


希望它能起作用,祝你好运。

如果你不想使用碎片,我建议你使用碎片,你可以使用
LayoutInflater
膨胀你喜欢的任何布局,并反复使用
setContentView
在它们之间进行更改

    View layout1 = LayoutInflater.from(this).inflate(/*your first layout */ R.layout.activity_layout_1, getWindow().getDecorView());
    //here you can use findViewByID like this
    View someViewInLayout1 = layout1.findViewByID(R.id.some_view);
    //... get fields for all others views you need here in layout1
    //than you inflate your other layout
    View layout2 = LayoutInflater.from(this).inflate(/*your second layout */ R.layout.activity_layout_2, getWindow().getDecorView());
    //... do the same for layout2
现在,您可以随时调用
setContentView
,在布局之间进行更改

setContentView(layout1 /*or layout2*/);
这将出现在一个应用程序中,该应用程序包含一个主活动和一些从属活动,我想启动但不显示的活动将是从属活动之一

这是不可能的。或者,更准确地说,欢迎您启动该活动,不填充其UI,但它仍将占据屏幕,因此用户将看到一个空白屏幕,这不是特别有用

换句话说,主视图已经填满了屏幕,因此只需将新视图隐藏在视图层次结构的底部就足够了


每个活动都有自己的视图层次结构。“下属活动”不能也不会位于其他活动的视图层次结构的顶部、底部或任何其他位置。

可见性设置为
消失了
?什么是“下属活动”?可能从活动布局移动到片段?@commonware-通过“下属”我指的是从主要活动开始的活动。当你在主屏幕上启动应用程序时,你可以从主屏幕转到其他屏幕,每个屏幕都是自己的活动;当你离开这些你回到主屏幕上。对于那些人来说,还有什么比“从属”更好的术语呢?@user316117:“Backport”是一个用于获取设计用于在较新环境中运行的代码并将其调整为可在较旧环境中使用的术语。在安卓系统中,这个术语通常用于将谷歌的一些源代码用于(比如)API 11+级设备,并创建一个可以在旧设备上使用的版本(例如API 7+)。这些不是单独的布局,而是完全独立的活动,正如我在问题中解释的那样。我希望尽可能接近现有的体系结构,但我只是不希望在设置ContentView()时活动的屏幕可见。我想稍后让它可见。