2012-04-06 5 views
0

私はRelativeLayoutでウィンドウを作成し、2つのコントロールをインストールしました。 1つはGridViewで、もう1つはWebViewです。複数のコントロールをAndroidでグループ化する

私はgridviewに画像をバインドして、同じメニューを使用します。広告用にwebviewにhtmlページを読み込みます。

しかし、私はこれらのコントロールに問題があります。 たとえば、ユーザーがグリッドビューを垂直方向にスクロールすると、Webviewの背後で消えてしまいます。

私はこれらのコントロールをまとめてグループ化して同時に動作させることができますか?

私のデバイスをランドスケープモードに切り替えると、Webviewが画面から消えてしまいました。

最後に、GridViewのlayout_height属性fill_parentを設定すると、WebViewが表示されないので、wrap_contentとして設定します。しかし、今回はWebViewが一番下に並んでいないので、GridViewの後ろに整列し、画面の下とWebviewの間にスペースがあります。

 <RelativeLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:background="@drawable/bg480480"> 

    <GridView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/gridview" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:numColumns="auto_fit" 
    android:verticalSpacing="45dp" 
    android:horizontalSpacing="10dp" 
    android:columnWidth="150dp" 
    android:stretchMode="columnWidth" 
    android:gravity="center" 
    android:layout_marginTop="30dp" 
    android:scrollbars="none" 
    android:layout_alignParentTop="true" /> 

     <WebView 
     android:id="@+id/webView1" 
     android:layout_width="wrap_content"  
     android:layout_height="wrap_content" 
     android:scaleType="centerInside" 
     android:gravity="bottom" 
     android:layout_below="@id/gridview" /> 

</RelativeLayout> 

ここにいくつかのスクリーンショットがあります。

First open (portrait mode)

same scren, landscape mode

same screen again, portait mode after landscape

+0

android:layout_above="@+id/webView1" を追加する必要があります。 – Bandreid

+0

申し訳ありません、それは助けになりませんでした。 –

答えて

0

私は、主な問題は、GridViewコントロールとWebViewの両方がlayout_height="fill_parent"を指定することであると思います。おそらく、GridViewが親領域全体を埋めるようにしたくないと思いますので、代わりに"wrap_content"を使用してください。

私はページのレイアウトを十分に分かっていませんが、LinearLayoutを使用して快適に作業することをお勧めします。実際には、グリッドビューとWebビューで表示される内容とメインコンテンツの場所によって異なります。

以下の例では、あなたのウェブビューが大部分の画面を占めたいと仮定しています。

 <GridView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/gridview" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:background="#ff0000" 
    android:numColumns="auto_fit" 
    android:verticalSpacing="45dp" 
    android:horizontalSpacing="10dp" 
    android:columnWidth="150dp" 
    android:stretchMode="columnWidth" 
    android:layout_marginTop="30dp" 
    android:scrollbars="none" 
    /> 

     <WebView 
      android:id="@+id/webView1" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:background="#00ff00" 
      android:scaleType="centerInside" /> 

</LinearLayout> 

仮定が正しくない場合、あなたはおそらく他の方法でラウンド(WebViewの=>wrap_conent

+0

お返事ありがとうございますが、このソリューションではwebviewが表示されません。 –

0

それを指定することになり、以下のようにWebViewのレイアウトコードを向上:

<GridView 
    android:id="@+id/gridview" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:layout_above="@+id/webView1" 
    android:layout_alignParentTop="true" 
    android:layout_marginTop="30dp" 
    android:columnWidth="150dp" 
    android:gravity="center" 
    android:horizontalSpacing="10dp" 
    android:numColumns="auto_fit" 
    android:scrollbars="none" 
    android:stretchMode="columnWidth" 
    android:verticalSpacing="45dp" /> 

<WebView 
    android:id="@+id/webView1" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:layout_alignParentBottom="true" 
    android:gravity="bottom" 
    android:scaleType="centerInside" /> 

をFYI android:layout_alignParentBottom="true"は、画面の下部にWebViewを表示します。 GridViewの内部にはandroid:layout_above="@+id/webView1"が含まれています。

このレイアウトコードを試してください。

+0

私は現在の状況のスクリーンショットを追加しました。その非常に奇妙なことを見ることができます。 –

0

あなたはScrollViewの内側にあなたのRelativeLayoutを入れてみてください、あなたのWebViewの中でも、 android:layout_alignParentBottom="true" あなたのGridView に

<RelativeLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:background="@drawable/bg480480" 
    android:orientation="vertical" 
    > 

    <GridView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/gridview" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:numColumns="auto_fit" 
    android:verticalSpacing="45dp" 
    android:horizontalSpacing="10dp" 
    android:columnWidth="150dp" 
    android:stretchMode="columnWidth" 
    android:gravity="center" 
    android:layout_above="@+id/webView1" 
    android:layout_marginTop="30dp" 
    android:scrollbars="none" 
    android:layout_alignParentTop="true" /> 

     <WebView 
      android:id="@+id/webView1" 
      android:layout_width="wrap_content"  
      android:layout_height="wrap_content" 
      android:layout_alignParentBottom="true" 
      android:layout_below="@id/gridview" /> 

</RelativeLayout> 
関連する問題