2011-02-04 130 views
29

我有兩個視圖佔據整個屏幕,我想同時顯示兩個視圖,一個在另一個之上。我的佈局是這樣的:我將如何顯示一個視圖作爲另一個視圖的疊加?

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

    <WebView 
     android:id="@+id/webview" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
    /> 

    <org.example.myCustomView 
     xmlns:android="http://schemas.android.com/apk/res/android" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
    /> 

</LinearLayout> 

注意myCustomView使用的onDraw(此方法的最後一條語句是無效的())來繪製自定義圖形。我得到的問題是它只顯示myCustomViewWebView被隱藏。我試圖將mycustomView的背景顏色更改爲透明,但這沒什麼區別。

我還希望能夠將myCustomView作爲WebView的疊加層,反之亦然。

回答

23

使用RelativeLayout初學者。

您可以使用ViewGroup.addView(View child, int index, ViewGroup.LayoutParams params)或變體以及ViewGroup.removeView(View view)ViewGroup.removeViewAt(int index)

這顯然會要求您使用LayoutInflater手動誇大視圖,但是您可以在充氣後保持全局參照,然後在兩者之間進行翻轉。

+3

謝謝!我只將LinearLayout更改爲RelativeLayout,它工作。其他2個答案不起作用。 – ace 2011-02-04 21:03:45

-1

術語fill_parent表示消耗父項中的所有可用空間。嘗試將其設置爲wrap_content。然後,您可以嘗試向兩者添加weight = 1以嘗試均勻分配剩餘空間。

15

我不知道,如果你能做到這一點,當他們在同一個XML文件,但我知道,如果你移動:

<org.example.myCustomView 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" /> 

到另一個XML文件,並創建另一個活動。將內容視圖設置爲包含org.example.myCustomView的xml文件並調用該活動。在清單中,當您添加活動,添加主題發言像這樣:

android:theme="@android:style/Theme.Dialog" 

完整的語句應該是這樣的:

<activity android:name=".name_of_activity" 
    android:label="TextToBeOnTop" 
    android:theme="@android:style/Theme.Dialog"> 
</activity> 

結果會是這樣的(只有它會與你的組件代替):

enter image description here

雖然瑪貝可能這樣做時,他們仍然在同一個XML文件中。如果可能的話,它可能會被單獨留下明顯,和編輯costomeView以下完成:

<org.example.myCustomView 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:theme="@android:style/Theme.Dialog" /> 

(我添加了主題發言到CustomView)

如果這不是你要找的東西,比我想要的東西類似於尼克坎皮恩說的東西,那就是將fillParent改成wrapContent。 你可以做到這一點,或者你可以選擇你想要的尺寸。這裏有兩個選項,你可以使用:

<org.example.myCustomView 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="50dip" 
    android:layout_height="50dip" /> 

(你可以改變「50dip」爲它浸結束,你想,只要任何數字)

或:

<org.example.myCustomView 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" /> 
相關問題