2017-01-17 4 views
1

MapFragment에 문제가 있으며 어떻게 화면을 채우지 못하게 할 수 있는지 알 수 없습니다. 내 Textview에서 멈추도록 MapFragment가 있어야합니다. 어떻게 보일 필요가 있는지를 묘사 한 그림을 붙인다. 지금은 내 MapFragment가 화면을 채우고 Textview가 MapFragment 위에 배치됩니다.TextView와 Buttons가 별도의 UI 세그먼트에있는 MapFragment

그러면 내 텍스트 뷰 위에 두 개의 버튼이 있습니다. 괜찮습니다.

이 내가 보이게하는 방법입니다 :

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

지도가 다시 부모 (RelativeLayout의) 전체 공간 (match_parent)을 사용하도록 설정되어 그 공간을 모두 사용하여있는 LinearLayout 안에 있습니다. 지도의 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