如何在android中的单个屏幕中使用两个活动?

时间:2014-04-07 11:49:32

标签: android

我想在一个屏幕上显示两个不同的活动我怎么能在android中做到这一点?如果有人有想法分享它。我不想使用片段。

我想显示一个屏幕,其中包含一些字段及其下方(位于屏幕底部)我想要另一个带有一些按钮的屏幕。

这在Android中是否可行?

如果是这样,我该怎么做?

2 个答案:

答案 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);

也就是说,您可能想学习如何使用片段,因为您可以在单个工作单元(事务)中处理视图和其他状态。但上述方法适用于简单的视图更改。