0

我厌倦了试图解决这个问题,但没有运气。

我的布局由地图视图、搜索栏和 EditText 组成。

mapview 占用整个空间的问题,因此不会出现 EditText 文本。

我试图玩重量值,但没有运气。

感谢你的帮助。

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

    a:layout_height="fill_parent" >


        <com.google.android.maps.MapView
            xmlns:android="http://schemas.android.com/apk/res/android"
            android:id="@+id/mapview"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:apiKey="somekey"
            android:clickable="true" 

             android:layout_weight="0"
            a:layout_alignParentTop="true"
             />

       <SeekBar
            xmlns:android="http://schemas.android.com/apk/res/android"
            android:id="@+id/seekBar1"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_alignParentLeft="true"

            android:layout_marginTop="26dp"
            a:paddingLeft="10dip"
            a:paddingRight="10dip"
            a:paddingTop="30dip"
            android:max="100" >
        </SeekBar>

 <EditText
            a:id="@+id/smsBody"
            a:layout_width="0dip"
            a:layout_height="wrap_content"
            a:layout_weight="1.0"
            a:autoText="true"
            a:capitalize="sentences"
            a:hint="@string/sms_enter_message"
            a:imeOptions="actionSend|flagNoEnterAction"
            a:inputType="textShortMessage|textAutoCorrect|textCapSentences|textMultiLine"
            a:maxLines="10"
            a:nextFocusRight="@+id/send_button"
            a:layout_alignParentBottom="true" />

</RelativeLayout>
4

4 回答 4

2

看起来您正在尝试直接在 MapView 上应用布局权重。相反,将 MapView 放在父容器内,例如 FrameLayout 并将布局权重(例如 0.7)应用于父容器。

于 2012-07-22T22:07:02.703 回答
2

你应该用 android:layout_weight. 例如以这种方式:我希望它会起作用。

 <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/textlayout"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:orientation="vertical"
        android:weightSum="15" >

        <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:layout_weight="6" >

            <SeekBar
                android:id="@+id/seekBar1"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content" />
        </LinearLayout>

        <LinearLayout
            android:id="@+id/maplayout"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:layout_weight="6" >

            <EditText
                android:id="@+id/smsBody"
                android:layout_width="fill_parent"
                android:layout_height="fill_parent"
                android:hint="test" />
        </LinearLayout>

        <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:layout_weight="3" >

            <com.google.android.maps.MapView
                android:id="@+id/map"
                android:layout_width="fill_parent"
                android:layout_height="fill_parent"
                android:apiKey="XXX" />
        </LinearLayout>

    </LinearLayout>
于 2012-07-22T22:20:53.760 回答
1

这是您需要的,尝试在 MapView 或其他元素中设置此属性:

android:layout_above="@+id/.."android:layout_below="@+id/...".

并删除所有权重属性,它们在 RelativeLayout 中没有用,因为您可以使用所描述的属性来完成您的工作。当所有元素都在堆栈中而不是“填充”在布局中时layout_weight,通常使用它。LinearLayout

当父布局是 a 时使用这些属性RelativeLayout,并确定哪个布局应该在另一个之上,通常是整个方向。它也分别具有左或右方向的layout_toLeftOflayout_toRightOf

于 2012-07-22T22:33:45.260 回答
1

只需两行简单的代码,您就完成了:)

    android:layout_alignParentBottom="true"

    android:layout_above="@+id/headerRow"


<?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"
    android:background="@drawable/bg" >

    <FrameLayout
        android:id="@+id/headerRow"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true" >

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="HERE GOES YOUR TEXT" />
    </FrameLayout>

    <com.google.android.maps.MapView
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/mapview"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_above="@+id/headerRow"
        android:apiKey="mykey"
        android:clickable="true" />

</RelativeLayout>

这肯定会帮助您完美地完成工作。

谢谢 :)

于 2012-07-22T22:41:36.443 回答