2011-02-04 6 views
29

私は画面全体を2つのビューで表示し、同時に両方のビューを同時に表示したいと思います。 myCustomViewは、カスタムグラフィックスを描画するonDrawを(この方法の最後の文は無効(ある))を使用していること1つのビューを別のビューのオーバーレイとしてどのように表示するのですか?

<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> 

注:私のレイアウトは、このようになります。私が得ている問題は、表示されるのはmyCustomViewWebViewのみです。 mycustomViewの背景色を透明に変更しようとしましたが、違いはありません。

WebViewにオーバーレイとしてmyCustomViewを埋め込むこともできますし、その逆も可能です。

答えて

23

使用してAここにあなたが使用できる2つのオプションがあります初心者はRelativeLayoutです。

ViewGroup.addView(View child, int index, ViewGroup.LayoutParams params)またはViewGroup.removeView(View view)またはViewGroup.removeViewAt(int index)のバリアントを使用することができます。

これは明らかにLayoutInflaterを使用して手動でビューを膨張させる必要がありますが、膨らませた後、それぞれのビューをグローバルに保持して2つのビューをちょうど切り替えることができます。

+3

ありがとうございます!私はLinearLayoutをRelativeLayoutに変更しただけです。他の2つの回答は機能しませんでした。 – ace

+0

ようこそ。すべてのベスト:D – techiServices

+0

'FrameLayout'は互いの相対的な位置付けが心配されていない場合にも良いです。 –

-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ファイルに残っているとき、それはそれを行うことが可能mabeyが。それが可能であるならば、それは可能性が高いだけではマニフェストを残すことによって行われ、次のようにあなたの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に変更することだったNick Campionと同じようなものを再考するよりも、 これを行うこともできますし、希望するサイズを選択することもできます。

<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" />