如何在Android中的Map片段下方获取自己的状态栏

时间:2013-05-02 12:29:00

标签: android google-maps android-linearlayout android-xml

我正试图让谷歌地图占据几乎所有的屏幕,但我希望我自己的全宽状态栏位于地图下方的屏幕底部。为此,我尝试使用LinearLayout,使用TextView作为状态栏。但是状态栏永远不会出现。我的xml是

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/activity_main"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <fragment
        android:id="@+id/map"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        class="com.google.android.gms.maps.MapFragment" />             

    <TextView 
        android:id="@+id/main_status_bar"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="bottom"
        android:padding = "4sp"
        android:gravity="left|center_vertical"
        android:text="Statusbar"
        />

</LinearLayout>

我做错了什么?

PS:我有点担心android:layout_height只有两种选择,即"wrap_content""match_parent"。这似乎不允许状态栏的规格是它所需的大小(即android:layout_height="wrap_content"),并且地图采取其余的,因为我使用android:layout_height="match_parent"逻辑上暗示没有空间其他任何事情。但是,即使使用

android:layout_height="wrap_content"

两者似乎都不起作用。

1 个答案:

答案 0 :(得分:2)

  

我做错了什么?

如果我不得不猜测,wrap_content不适用于MapFragment。除此之外,无论如何,你的布局都没有指明你想要的东西。

  

我有点担心android只有两种选择:layout_height,即“wrap_content”和“match_parent”。

android:layout_height有无数的选择,因为它也可以采用维度,并且存在无数个正整数。

  

这似乎不允许状态栏的规格是它需要的大小(即android:layout_height =“wrap_content”),并且地图采取其余的

将片段的android:layout_height设置为0dp,并设置其android:layout_weight="1"。这告诉Android为内在高度分配0像素,但也给它剩下的所有像素(因为条形图的权重默认为0)。这将导致MapFragment接管底栏未消耗的所有空间。