【问题标题】:Bottom bar layout in androidandroid中的底栏布局
【发布时间】:2016-04-28 08:38:32
【问题描述】:

这是我的地图 - 底栏布局的 android xml 源代码。我在屏幕上显示一个巨大的地图,我需要在屏幕底部有一个 30dp 高的布局来显示一些像图像一样的标签。如何将水平线性布局推到页面底部?

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_height=" what here ? "
    android:layout_width="fill_parent"
    android:orientation="vertical">
    <com.google.android.maps.MapView
        android:id="@+id/map_view"
        Map goes here. Almost full screen. Exactly full - 30dp;

        />
    <LinearLayout>
         I want 3 images here. Bottom of the screen.
    </LinearLayout>
</RelativeLayout>

【问题讨论】:

标签: android layout android-layout android-xml


【解决方案1】:

使用android:layout_alignParentBottom="true"将线性布局设置在父级底部的线性布局和android:layout_above用于mapview将mapview设置在线性布局之上。

您的代码将是:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_height="fill_parent"
    android:layout_width="fill_parent"
    android:orientation="vertical">

    <LinearLayout android:layout_height="30dip"
        android:layout_width="fill_parent"
        android:layout_alignParentBottom="true"
        android:id="@+id/linearLayout1"
    >
         <!-- ... -->
    </LinearLayout>

    <com.google.android.maps.MapView
        android:id="@+id/map_view"
        android:layout_height="wrap_content"
        android:layout_width="fill_parent"
        android:layout_above="@+id/linearLayout1"
    />
</RelativeLayout>

【讨论】:

    【解决方案2】:
    <?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent" >
    
        <com.google.android.maps.MapView
            android:id="@+id/map_view"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:layout_above="@+id/rel_bottom" />
    
        <RelativeLayout
            android:id="@+id/rel_bottom"
            android:layout_width="fill_parent"
            android:layout_alignParentBottom="true"
            android:layout_height="30dp" >
    
            <ImageView
                android:id="@+id/img1"
                android:layout_width="40dp"
                android:layout_height="fill_parent" />
    
            <ImageView
                android:id="@+id/img2"
                android:layout_width="40dp"
                android:layout_height="fill_parent"
                android:layout_toRightOf="@+id/img1" />
    
            <ImageView
                android:id="@+id/img3"
                android:layout_width="40dp"
                android:layout_height="fill_parent"
                android:layout_toRightOf="@+id/img2" />
        </RelativeLayout>
    
    </RelativeLayout>
    

    【讨论】:

      【解决方案3】:

      使用RelativeLayout 的属性,例如android:layout_alignParentBottomandroid:layout_above

      我会这样做:

      <?xml version="1.0" encoding="utf-8"?>
      <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
      android:layout_height="fill_parent"
      android:layout_width="fill_parent">
      
           <LinearLayout
             android:id="@+id/footer"
             android:layout_alignParentBottom="true"
             android:layout_alignParentLeft="true"
             android:width="fill_parent"
             android:height="30dp">
      
                  add your images here
      
           </LinearLayout>
      
          <com.google.android.maps.MapView
               android:id="@+id/map_view"
               android:height="fill_parent"
               android:width="fill_parent"
               android:layout_alignParentTop="true"
               android:layout_above="@id/footer"/>
      
      </RelativeLayout>
      

      【讨论】:

        【解决方案4】:

        尝试以下布局。使用android:layout_alignParentBottom="true" 是不够的,因为带有android:layout_height="fill_parent" 的MapView 将填满整个屏幕并隐藏LinearLayout。您还必须添加android:layout_above="@id/menu",这样它就不会隐藏它。

        <?xml version="1.0" encoding="utf-8"?>
        <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
            android:layout_width="match_parent"
            android:layout_height="match_parent" >
        
            <com.google.android.maps.MapView
                android:id="@+id/map"
                android:layout_width="fill_parent"
                android:layout_height="fill_parent"
                android:layout_above="@id/menu"
                android:apiKey="@string/google_maps_api_key"
                android:clickable="true" />
        
            <LinearLayout
                android:id="@+id/menu"
                android:layout_width="fill_parent"
                android:layout_height="30dp"
                android:layout_alignParentBottom="true" >
            </LinearLayout>
        
        </RelativeLayout>
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2022-01-27
          • 1970-01-01
          相关资源
          最近更新 更多