2017-01-17 7 views
1

У меня проблема с MapFragment, и я не знаю, как я могу сделать это НЕ заполнять экран. Мне нужно, чтобы MapFragment остановился на моем текстовом представлении. Im прикрепляет изображение, которое лучше описывает, как мне это нужно. Прямо сейчас мой MapFragment заполняет экран, а текстовое изображение помещается поверх MapFragment.MapFragment с TextView и кнопками в отдельном сегменте пользовательского интерфейса

У меня есть две кнопки, которые находятся поверх моего текста. Хорошо.

Это, как я хочу, чтобы это выглядело:

enter image description here

Надеется, что вы можете помочь!

здесь является расположение:

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:id="@+id/activity_main" 
    android:layout_alignBottom="@id/activity_main" 
    android:layout_width="match_parent" 
    android:weightSum="10" 
    android:keepScreenOn="true" 
    android:layout_height="match_parent"> 


    <LinearLayout 
     android:id="@+id/linelay" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:orientation="horizontal"> 

     <fragment android:name="com.google.android.gms.maps.SupportMapFragment" 
      android:id="@+id/map" 
      android:layout_width="match_parent" 
      android:layout_weight="9" 
      android:layout_height="wrap_content" 
      tools:context="com.example.MapsActivity" 
      tools:layout="@layout/activity_main"/> 


    </LinearLayout> 

    <ToggleButton 
     android:text="ToggleButton" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentRight="true" 
     android:layout_alignParentBottom="true" 
     android:id="@+id/toggleButton" /> 

    <Button 
     android:text="@string/button1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_above="@id/toggleButton" 
     android:layout_alignParentRight="true" 
     android:onClick="clearMap" 
     android:id="@+id/button1" /> 


    <TextView 
     android:id="@+id/text1" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_weight="1" 
     android:text="Hello World!" 
     android:layout_alignParentStart="true" 
     android:layout_alignParentLeft="true" 
     android:layout_alignParentBottom="true" 
     android:background="@drawable/frame" /> 

</RelativeLayout> 
+0

Ваша карта находится внутри LinearLayout, используя все ее пространство, которое, в свою очередь, установлен для использования его родителя (RelativeLayout) все пространство (match_parent). Макет layout_weight для карты ничего не делает, поскольку он находится внутри LinearLayout ни с чем другим. Возможно, вы хотите, чтобы для LinearLayout был установлен layout_weight. Также имейте в виду, что layout_weight работает лучше (и намного быстрее), если родительский LinearLayout. – AlxDroidDev

ответ

0

Вот один из способов сделать это. Используйте LinearLayout в качестве внешнего макета и используйте макеты для определения высоты для разных разделов.

Это лучше, чем определение высот для любого из разделов с использованием жестко заданных значений dp. Использование макетов веса для высоты будет лучше динамически регулироваться с различными размерами экрана.

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    tools:context="com.danielnugent.mapapplication.MapsActivity" 
    android:orientation="vertical" 
    android:weightSum="1"> 

    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="0dp" 
     android:orientation="vertical" 
     android:layout_weight=".8"> 
     <fragment 
      android:id="@+id/map" 
      class="com.google.android.gms.maps.SupportMapFragment" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent"/> 
    </LinearLayout> 

    <RelativeLayout 
     android:layout_width="match_parent" 
     android:layout_height="0dp" 
     android:orientation="vertical" 
     android:layout_weight=".2"> 

     <TextView 
      android:id="@+id/text" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="TextView Text Here" 
      android:layout_marginLeft="40dp" 
      android:layout_marginStart="40dp" 
      android:lineSpacingExtra="14sp" 
      android:textSize="18sp" 
      android:layout_above="@+id/button1" 
      android:layout_alignParentLeft="true" 
      android:layout_alignParentStart="true" /> 

     <Button 
      android:id="@+id/button2" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="Button 1" 
      android:layout_marginRight="18dp" 
      android:layout_marginEnd="18dp" 
      android:layout_alignParentRight="true" 
      android:layout_alignParentEnd="true" 
      android:layout_above="@+id/button1" /> 

     <Button 
      android:id="@+id/button1" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="Button 2" 
      android:layout_alignParentBottom="true" 
      android:layout_alignLeft="@+id/button2" 
      android:layout_alignStart="@+id/button2" /> 

    </RelativeLayout> 
</LinearLayout> 

Результат:

enter image description here

+0

Этот ответ принят, я не могу отметить его как принятый, так как мой результат меньше 15. Спасибо большое @ Daniel Nugent – typecode

+0

да, я мог бы! :) – typecode

 Смежные вопросы

  • Нет связанных вопросов^_^