2013-08-16 62 views
3

我有一個Google Maps API v2的自定義信息窗口,它使用通過在我的類中覆蓋getInfoWindow添加的RelativeLayout。這個佈局在第一行有一個標題的TextView,在下一行有三個TextViews,一個對齊左邊,另一個對齊中心,第三個對齊右邊。它可以工作,但窗口占據了整個屏幕,在平板電腦等大屏幕中非常難看。API Maps v2的自定義信息窗口中的RelativeLayout寬度

我試圖將RelativeLayout的寬度設置爲某個固定值(比方說「50dp」)或「wrap_content」,但它總是佔用整個屏幕。

這是佈局的XML:

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/bus_stop_info_window" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:background="#ffffffff" > 

    <TextView 
     android:id="@+id/title" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_gravity="left" 
     android:text="A title" > 
    </TextView> 

    <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_below="@id/title" 
     android:gravity="left" 
     android:text="Test1" > 
    </TextView> 

    <TextView 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_below="@id/title" 
     android:gravity="center" 
     android:text="Test2" > 
    </TextView> 

    <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_below="@id/title" 
     android:gravity="left" 
     android:text="Test3" > 
    </TextView> 

</RelativeLayout> 

我怎樣才能達到預期的效果?

+1

檢查這個http://stackoverflow.com/questions/17611425/add-round-egde-to-a-map-marker/17613299#17613299 – TheFlash

+0

在包裹中的RelativeLayout LinearLayout遵循你的鏈接的想法。非常感謝你!如果你想發佈解決方案作爲答案,我會接受它。 – user936580

回答

6

爲此,將根元素設置爲線性佈局,並將相對佈局放入其中,以便該窗口不會填充平板電腦中的整個屏幕。這不會影響相對佈局寬度是wrap_content還是固定大小。

U可以試試我的回答here

+0

普通設備呢? –

+0

我可以證實這種方法可行,但爲什麼在使用'RelativeLayout'而不是'LinearLayout'作爲父項時佈局被破壞?這是另一個谷歌的錯誤? – Storix

0

檢查此鏈接:

https://stackoverflow.com/a/6168459/2074990

工作對我來說,當我不得不收縮的RelativeLayout!

+0

我試圖實現這個解決方案,但getLayoutParams返回null。如果我在創建一個帶有screenWidth/2的新LayoutParams並且我應用了這個參數時,寬度仍然是整個屏幕。 – user936580

+0

以及我無法看到您的代碼。但如果你適應它,你不能在這裏得到一個NPE。 – bofredo

+0

我認爲問題來自於我使用RelativeLayout來處理由系統處理的InfoWindowAdapter。無論如何,Indiandroid的答案解決了我的問題。感謝您的時間! – user936580

相關問題