我想在一个屏幕上显示两个不同的活动我怎么能在android中做到这一点?如果有人有想法分享它。我不想使用片段。
我想显示一个屏幕,其中包含一些字段及其下方(位于屏幕底部)我想要另一个带有一些按钮的屏幕。
这在Android中是否可行?
如果是这样,我该怎么做?
答案 0 :(得分:4)
您无法在一个屏幕中进行两项活动。你只能有一个。因此,最终解决方案是Fragments。
答案 1 :(得分:0)
活动不是直接的视觉组件,因此我认为您真正要问的是如何让单个活动显示不同的视图。
没有任何内容表明您无法使用不同的布局/视图ID重新运行setContentView()
。但是,还有另一种非片段方式可以做你想做的事情。
您可以在布局中定义多个全尺寸(match_parent)视图。你想要做的是将其中一个的可见性设置为"可见"与android:visibility="visible"
和其他所有其他人一起去了#34;与android:visibility="gone"
。
然后,当您想要切换显示的视图时,您将在传出视图上运行setVisibility(View.GONE)
并在传入视图上运行setVisibility(View.VISIBLE)
。使用GONE而不是INVISIBLE非常重要,否则布局无法正确呈现。
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity" >
android:layout_width="match_parent"
android:layout_height="match_parent" >
<ImageView
android:id="@+id/img"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:visibility="visible" />
<SurfaceView
android:id="@+id/video"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:visibility="gone" />
<WebView
android:id="@+id/web"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:visibility="gone" />
</FrameLayout>
video.setVisibility(View.VISIBLE);
img.setVisibility(View.GONE);
web.setVisibility(View.GONE);
也就是说,您可能想学习如何使用片段,因为您可以在单个工作单元(事务)中处理视图和其他状态。但上述方法适用于简单的视图更改。