一个活动中的多个视图(如地图和列表)

时间:2011-10-08 19:58:41

标签: android android-layout

过去几天我一直在使用android进行一些调整。 在其他视图中包含视图时,我遇到了一个问题。

使用简单视图时,这没有问题,但只要视图有一些奇特的活动,比如ListActivity或MapActivity(当使用谷歌地图视图时)

让我们说我需要一个动态类型的列表,以及同一视图中的谷歌地图视图。 由于它们都有与之相关的特定活动,我将如何创建它?

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_height="fill_parent" android:orientation="vertical" android:layout_width="fill_parent" android:id="@+id/linearLayout1" android:weightSum="1">
    <include android:id="@+id/include1" layout="@layout/list" android:layout_height="wrap_content"  android:layout_width="match_parent"></include>
    <include android:id="@+id/include2" layout="@layout/map" android:layout_width="match_parent" android:layout_height="wrap_content"></include>
</LinearLayout>

我应该使用那种Inflater吗?

我一直在寻找这个问题的解决方案,但我还没找到。 要么我的谷歌缺少了,要么我正在以错误的方式看待它。

在写这篇文章的同时,在SO上阅读相关问题时,我可能已经找到了解决方案。 由于ListActivity和MapActivity只是扩展活动,而不是使用android SDK提供的ListActivity和MapActivity,我应该只使用普通的Activity,并自己实现这些东西,或者如果可能的话,在我自己的活动中重用它们的活动? / p>

任何人都可以证实吗? :)

提前致谢:)

1 个答案:

答案 0 :(得分:1)

MapViews并不总是在MapActivities中,ListViews并不总是在ListActivities中。这些活动作为围绕单一视图类型的其他活动的起点存在。

回答您的问题:如果您想要一个同时包含ListView和MapView的活动,您只需将它们添加到活动的根视图组即可。然后简单地实现所需的方法以使MapView和ListView正常工作。

我不确定你在一个视图中拥有多种视图类型的意思。通常人们会谈到为视图组添加视图,例如:

<LinearLayout ....>
    <Button ..../>
    <ImageView ..../>
</LinearLayout>

在这种情况下,您有一个LinearLayout视图组,其中包含ButtonImageView的2个视图。在Android中,谈论包含另一个视图的ImageView是没有意义的。

这让我觉得你问题的标题应该是:

  

一个活动中的多种视图类型(如地图和列表)