0

カレンダーを作成しており、現在の季節に基づいたアニメーションを作成しています。つまり、冬の場合は、画面の上部から雪が降ってきます。

現在、カレンダーのレイアウトが整っており、(0,0) に画像を描画すると、画面の左上に移動することを期待しています...メインレイアウトにスノーフレークを追加していますが、何らかの理由で彼らは私のgridViewの一番下に行きます。私のレイアウトの1つがスペースを占有しているとしか思えませんが、よくわかりません..これが私のカレンダーのレイアウトです:

 <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/calendar_main_view"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@drawable/bg"
    android:gravity="center_horizontal"
    android:orientation="vertical" >

    <Button android:text="Selected :"
        android:id="@+id/main_header_image"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="@drawable/calendar_top_header" />

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="center_horizontal" >

    <ImageView
        android:id="@+id/calendar_left_arrow"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/cal_left_arrow_off" />

    <Button android:text=""
        android:id="@+id/selected_date"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="@drawable/calendar_centralheader"
        />

    <ImageView
        android:id="@+id/calendar_right_arrow"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/cal_right_arrow_off" />

    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content" >

        <ImageView
            android:id="@+id/imageView1"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:src="@drawable/blue_bg_with_text" />

    </LinearLayout>

            <GridView
        android:id="@+id/calendar"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:numColumns="7" >

    </GridView>



</LinearLayout>

これは、Eclipse でカレンダーがどのように見えるかのスクリーンショットです。ここに画像の説明を入力

4

1 に答える 1

1

スノーフレークをメイン レイアウトに追加していますが、何らかの理由でそれらが gridView の一番下に移動します。

ビュー階層のルートは であり、LinearLayoutすべての子ビューを水平または垂直に順番にレイアウトします...それらのどれも重なりません。Java コードのルートLinearLayoutに別のビューを追加すると、それが追加され、最後の現在の子 (あなたの ) の後に配置されますGridView

アニメーション化された季節の画像を追加のビューとして追加する場合、アプリケーションを変更FrameLayoutしてルートに を配置し、ビューを追加して同じスペースに単純にオーバーレイできるようにすることをお勧めします (追加しない限り、ビューは左上に固定されます)。重力値を設定します)。これは既存の を置き換えるものLinearLayoutではなく、両方を包含します。

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/calendar_main_view"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >
    <!-- Your entire existing layout now inside of here --> 
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="@drawable/bg"
        android:gravity="center_horizontal"
        android:orientation="vertical" >

        <!-- All the other existing stuff... --> 

    </LinearLayout>
</FrameLayout>

これで、追加のビューを に追加できるようにFrameLayoutなり、期待どおりに動作するはずです。

于 2013-06-02T04:36:54.777 に答える