我正在尝试添加一个自定义按钮( GoogleMap ,虽然我不确定它是多么相关......)片段。
我不希望它本身就位于它下面 - 就像我可以使用 FrameLayout 或 LinearLayout 一样 - 但我希望按钮位于顶部其父布局透明的地图......
这是我(目前)在我的xml中的内容:
<fragment
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:map="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/map"
android:layout_width="match_parent"
android:layout_height="match_parent"
class="com.google.android.gms.maps.SupportMapFragment"
map:mapType="normal"
tools:layout="@layout/activity_location">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true" // THIS DOESNT WORK !!!
android:background="#FC0" // for debug purposes
android:gravity="center|bottom" >
<Button
android:id="@+id/location_order_btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="@dimen/small_margin"
android:background="@drawable/nav_btn_send"
android:text=""
android:textColor="@color/black"
android:textSize="@dimen/loginFontSize" />
</RelativeLayout>
</fragment>
注意'android:layout_alignParentBottom'和'android:background'行的注释......
这给了我这个结果:
现在......您可以通过代码告诉我我正在尝试将其与屏幕/地图底部对齐...但无论我做什么,它都会与ActionBar下方的顶部对齐......
我尝试了其他一些我在SO上找到的方法,但这是我到目前为止最接近的结果...
知道我做错了吗?
答案 0 :(得分:2)
您应该以这种方式在RelativeLayout
内定义您的片段:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:map="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="#FC0"
android:gravity="center|bottom" >
<fragment
android:id="@+id/map"
android:layout_width="match_parent"
android:layout_height="match_parent"
class="com.google.android.gms.maps.SupportMapFragment"
map:mapType="normal"
tools:layout="@layout/activity_location" />
<Button
android:id="@+id/location_order_btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="@dimen/small_margin"
android:background="@drawable/nav_btn_send"
android:text=""
android:layout_alignParentBottom="true"
android:textColor="@color/black"
android:textSize="@dimen/loginFontSize" />
</RelativeLayout>
并且您应该在要在父级底部对齐的子元素中使用layout_alignParentBottom
属性,在这种情况下,它是Button
答案 1 :(得分:1)
试试这个:
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<fragment
xmlns:map="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/map"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_alignParentTop="true"
class="com.google.android.gms.maps.SupportMapFragment"
map:mapType="normal"
tools:layout="@layout/activity_location"/>
<Button
android:id="@+id/location_order_btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="@dimen/small_margin"
android:background="@drawable/nav_btn_send"
android:text=""
android:textColor="@color/black"
android:textSize="@dimen/loginFontSize"
android:layout_centerHorizontal="true"
android:layout_alignParentBottom="true"
android:layout_marginBottom="10dp"/>
</RelativeLayout>
答案 2 :(得分:0)
对齐父级底部是片段的无效布局参数。 试试这个: 将相对布局的高度设置为match_parent,并对齐相对布局底部的按钮。
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#FC0">
<Button
android:id="@+id/location_order_btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="@dimen/small_margin"
android:layout_alignParentBottom="true"
android:background="@drawable/nav_btn_send"
android:text=""
android:textColor="@color/black"
android:textSize="@dimen/loginFontSize" />
</RelativeLayout>