2017-07-25 11 views
0

私は画面上に2つのビュー、Googleマップのフラグメントと別のカスタムフラグメントを持っています。カスタムフラグメントが画面に表示される前に、Googleマップはフルスクリーンで表示されます。新しいフラグメントが画面の一番下に表示されたら、新しいフラグメントで使用されていない空き領域だけが使用されるように、Googleマップのサイズを変更します。新しいビューが画面に表示されたときにビューのサイズを変更/短縮するにはどうすればよいですか?

ie。新しいフラグメントの前に

|----------------| 
|    | 
|    | 
|    | 
|    | 
|  Map  | 
|    | 
|    | 
|    | 
|    | 
|    | 
|    | 
|----------------| 

|----------------| 
|    | 
|    | 
|    | 
|  Map  | 
|    | 
|    | 
|    | 
|----------------| <-- Map ends here 
|    | 
| New Fragment | 
|    | 
|----------------| 

XMLファイル新しいフラグメント後:

<android.support.v4.widget.DrawerLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_height="match_parent" 
    android:layout_width="match_parent" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    android:id="@+id/drawer_layout"> 

    <android.support.design.widget.NavigationView 
     android:layout_width="200dp" 
     android:layout_height="match_parent" 
     app:menu="@menu/navigation_menu" 
     android:id="@+id/navigation_menu" 
     android:layout_gravity="start"> 

    </android.support.design.widget.NavigationView> 

    <RelativeLayout 
     android:layout_width="match_parent" 
     android:layout_height="match_parent"> 

     <fragment 
      xmlns:android="http://schemas.android.com/apk/res/android" 
      xmlns:tools="http://schemas.android.com/tools" 
      android:id="@+id/map" 
      android:name="com.google.android.gms.maps.SupportMapFragment" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      tools:context="com.example.damia.placefinder.activities.MapsActivity" /> 

     <FrameLayout 
      android:layout_width="match_parent" 
      android:layout_height="300dp" 
      android:id="@+id/container_locations" 
      android:layout_alignParentBottom="true" 
      android:background="@color/cardview_light_background" 
      android:visibility="gone"> 

     </FrameLayout> 

    </RelativeLayout> 

</android.support.v4.widget.DrawerLayout> 

を感謝

答えて

1

LinearLayoutを使用しても良い時間とlayout_weight属性のようですね。 、何らかの理由で、LinearLayoutがあなたの感性を傷つける場合

<LinearLayout 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical"> 

    <fragment 
     android:id="@+id/map" 
     android:name="com.google.android.gms.maps.SupportMapFragment" 
     android:layout_width="match_parent" 
     android:layout_height="0dp" 
     android:layout_weight="1" 
     tools:context="com.example.damia.placefinder.activities.MapsActivity"/> 

    <FrameLayout 
     android:id="@+id/container_locations" 
     android:layout_width="match_parent" 
     android:layout_height="300dp" 
     android:background="@color/cardview_light_background" 
     android:visibility="gone"> 

    </FrameLayout> 

</LinearLayout> 

は、あなたもConstraintLayoutでそれを行うことができます。

<android.support.constraint.ConstraintLayout 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 

    <fragment 
     android:id="@+id/map" 
     android:name="com.google.android.gms.maps.SupportMapFragment" 
     android:layout_width="0dp" 
     android:layout_height="0dp" 
     app:layout_constraintTop_toTopOf="parent" 
     app:layout_constraintLeft_toLeftOf="parent" 
     app:layout_constraintRight_toRightOf="parent" 
     app:layout_constraintBottom_toTopOf="@+id/container_locations" 
     tools:context="com.example.damia.placefinder.activities.MapsActivity"/> 

    <FrameLayout 
     android:id="@+id/container_locations" 
     android:layout_width="0dp" 
     android:layout_height="300dp" 
     android:background="@color/cardview_light_background" 
     android:visibility="gone" 
     app:layout_constraintLeft_toLeftOf="parent" 
     app:layout_constraintRight_toRightOf="parent" 
     app:layout_constraintBottom_toBottomOf="parent"> 

    </FrameLayout> 

</android.support.constraint.ConstraintLayout> 
関連する問題