0

私は主に含む以下のレイアウトを持っています:

Textviewとボタンでヘッダーとして機能する相対レイアウト。

およびリストビュー。

上記の相対レイアウトである「ヘッダー」を透明にし、ユーザーがリストビューを下にスクロールするとリストビューを表示したいと思います。

レイアウトを透明にする方法は知っていますが、「ヘッダー」の背景としてリストビューを表示する方法がわかりません。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >




        <RelativeLayout
            xmlns:android="http://schemas.android.com/apk/res/android"
            android:id="@+id/buttonlayout2"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"

            android:orientation="horizontal"
           android:background="#FFDBE2ED"
             android:paddingBottom="0dp"
              android:paddingTop="0dp" 
             >
          <TextView
                android:id="@+id/txtTest"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_centerHorizontal="true"  
                android:gravity="center_vertical" 
                android:layout_centerVertical="true"
                android:paddingLeft="0dp"
                android:text="@string/list_header"
                android:textColor="#000000"
                android:textSize="25sp"
                 android:textStyle="bold">
            </TextView>



            <Button
                android:id="@+id/btnClear"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginBottom="0px"
                android:layout_marginLeft="10px"
                android:layout_marginRight="3px"
                android:layout_marginTop="6px"
                android:height="0dp"
                android:text="Clear"
                android:textSize="15sp"
                android:width="70dp"
                 android:layout_alignParentRight="true"
                  >
            </Button>
       </RelativeLayout>

    <ListView
        android:id="@+id/mylist1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_above="@+id/form"
        android:layout_alignParentTop="true" >
    </ListView>



</LinearLayout>

スクリーンショット

4

2 に答える 2

2

ルートコンテナとしてLinearLayoutを使用しており、線形レイアウトでは、ビューが上下に配置されるため、一方のビューをもう一方のビューに重ねることはできません。オーバーラップ効果が必要な場合は、FrameLayoutまたはRelativeLayoutのいずれかをルートコンテナとして使用できます。
RelativeLayoutを使用することはより良いオプションです。
このためのサンプルコードは次のとおりです。

    <?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <ListView
        android:id="@+id/list"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent" >
    </ListView>

    <Button
        android:id="@+id/view"
        android:layout_width="fill_parent"
        android:layout_height="100dp"
        android:background="#00cc0000"
        android:layout_alignParentTop="true" />
</RelativeLayout>

ここでは、ボタンがリストビューと重なっています。

これがお役に立てば幸いです:)

于 2012-08-21T21:18:42.663 に答える
1

最初の要素として、RelativeLayout内でListViewを移動してみてください(これにより、ListViewが後ろにあることが保証されます)。このように、他のビューはListViewのすぐ上にあり、それらを透明にすると、目的の効果が得られるはずです。ああ、ListViewを作成してから、RelativeLayoutに入力する必要があります。

<ListView
    android:id="@+id/mylist1"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_alignParentTop="true" >
</ListView>

、RelativeLayoutを画面全体に表示します。

<RelativeLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/buttonlayout2"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
...
于 2012-08-21T18:59:53.477 に答える