5

Tôi đang quan sát hành vi không mong muốn của Google Map. Vấn đề là Bản đồ lấy vùng từ trên xuống dưới bằng cách sử dụng mảnh ghép bản đồ hỗ trợ, nếu tôi sử dụng toàn màn hình, bản đồ hoàn toàn có thể nhìn thấy như trong Hình 1, nhưng nếu tôi áp dụng chiều cao mảnh bản đồ hoặc thuộc tính trọng số thì bản đồ không hoàn toàn có thể nhìn thấy như thể hiện trong hình 2.Android GoogleMap v2 bị cắt hoặc không được hiển thị đầy đủ

layout xml cho hình ảnh 1:

<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:name="com.google.android.gms.maps.SupportMapFragment" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
tools:context="com.paki.venturedive.awtest.MapsActivity" /> 

layout xml cho bức tranh 2:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:orientation="vertical"> 

<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:name="com.google.android.gms.maps.SupportMapFragment" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:layout_weight="0.6" 
    tools:context="com.paki.venturedive.awtest.MapsActivity" /> 

<TextView 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:text="Hello world" 
    android:layout_weight="0.4" /> 

.210

mã Java:

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_maps); 
    // Obtain the SupportMapFragment and get notified when the map is ready to be used. 
    SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager() 
      .findFragmentById(R.id.map); 
    mapFragment.getMapAsync(this); 
} 

Trong Hình 2, tôi (Người dùng sẽ có) không thể nhìn thấy đại dương Bắc cực trên khu vực Greenland, tương tự như khu vực vùng đáy sẽ bỏ lỡ, như trong Hình 3 enter image description here.

Có ai phải đối mặt với vấn đề này hay không ai biết cách đối phó với vấn đề này?

Bất kỳ liên kết hoặc gợi ý nào sẽ được đánh giá cao.

Picture 1, Picture 2.

+0

đăng xml của bạn. mã nơi bạn đã đặt chiều cao và chiều rộng. –

+0

@SagarNayak câu hỏi đã được chỉnh sửa. –

+0

khi bạn đang tăng trọng số của nó lên 0,6 thì bố cục tuyến tính sẽ chỉ cho khoảng 60% không gian để phân đoạn bản đồ. cho tôi biết tại sao bạn lại cho trọng lượng. và chính xác thì bạn muốn gì? –

Trả lời

2

Sử dụng đoạn mã này. Tôi nhận được những gì bạn đang nói, bằng cách lấy mảnh bản đồ bên trong bố cục Tuyến tính/Tương đối, bản đồ được cắt từ trên xuống dưới và một số phần không nhìn thấy được. Vì bạn muốn bản đồ chiếm 60% của màn hình, một giải pháp có thể là lấy mảnh bản đồ bên trong FrameLayout với chiều cao là match_parent.

Bây giờ, hãy xem văn bản bên trong LinearLayout với cha mẹ là FrameLayout và đặt trọng số của nó ở dưới cùng và đặt chiều cao động 40% màn hình (hoặc yêu cầu của bạn là bao nhiêu) bằng cách sử dụng lớp DisplayMetrics. Bằng cách này, chúng tôi đảm bảo rằng toàn màn hình được cung cấp cho bản đồ để không có phần nào bị cắt và hiển thị văn bản cũng trên bản đồ. Tôi cũng đang đính kèm ảnh chụp màn hình được cập nhật.

<?xml version="1.0" encoding="utf-8"?> 


<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/map_framecontainer" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical"> 

    <fragment 
     android:id="@+id/fragment_map" 
     android:name="com.google.android.gms.maps.SupportMapFragment" 
     android:layout_width="match_parent" 

     android:layout_height="match_parent" /> 
    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_gravity="bottom" 
     android:id="@+id/tv_main"> 

    <TextView 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:layout_below="@id/fragment_map" 
     android:layout_gravity="center" 
     android:background="#ffffff" 
     android:text="Hello world" /> 

    </LinearLayout> 
</FrameLayout> 

Mã java trong onCreate của bạn cho DisplayMetrics:

DisplayMetrics metrics = new DisplayMetrics(); 
      getWindowManager().getDefaultDisplay().getMetrics(metrics); 

      mylinearlayout.setMinimumHeight((int)(metrics.heightPixels * 0.4)); 

Screenshot updated image with full map on top

Tôi nghĩ rằng điều này sẽ giúp.

+0

bạn đã thấy hình 3 chưa, khu vực trên không hiển thị bằng cách cuộn/kéo bản đồ. –

+0

Tôi đã thử nó và làm việc với việc kéo bản đồ. Tôi sẽ đính kèm ảnh chụp nhanh như đang diễn ra trong thiết bị của tôi. Xem đoạn mã trên. Hoặc sử dụng googleMap.getUiSettings(). SetScrollGesturesEnabled (true); trong hàm OnMapReady() nếu bạn không thể cuộn. – Mrigank

+0

Cuộn là worknig, tôi có thể cuộn, bạn có thể chụp một ảnh chụp màn hình khác, hiển thị khu vực, như tôi đã đăng trong Ảnh 1 và ảnh 3. cuộn lên trên cùng và để tôi xem nó –

Các vấn đề liên quan