0

私はAndroidアプリケーションを開発していて、次のようなアクティビティがあります。位置が固定されたヘッダーとフッターがあり、中央にクリック可能なアイテムがあるListViewがあります。ListViewの下にボタンがあります。

アイテムがいくつかある場合は機能しますが、アイテムを追加すると、このようにボタンが消え始めます。

そのリストにページに表示できるアイテムがさらにある場合は、リストにスクロールがあります。このように下にスクロールすると、リスト内のすべてのアイテムが表示されますが、ボタンは非表示になっています。

ScrollView内にListViewを追加しようとする前に多くの問題が発生したため、機能しないことがわかっています。私はAndroid開発に慣れていないので、XMLレイアウトファイルは少し紛らわしいかもしれませんが、内部に2つのRelativeLayoutsを持つ親LinearLayoutがあります。1つはヘッダー用、もう1つはミドルとフッター用です。XMLは次のようなものです。

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="fill_parent"
    android:layout_height="match_parent" 
    android:orientation="vertical"
    android:background="#FFFFFF">

    <RelativeLayout 
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" 
        android:orientation="horizontal"
        android:background="@drawable/background"
        android:gravity="center_vertical">

        <TextView
            android:id="@+id/title"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginBottom="5dp"
            android:layout_marginLeft="10dp"
            android:layout_marginTop="5dp"
            android:text="@string/baseTitle"
            android:textColor="#FFFFFF"
            android:layout_centerVertical="true"
            android:textSize="18dp"
            android:textStyle="bold"/>

        <Button 
            android:id="@+id/buttonHelp"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center_vertical"
            android:background="@drawable/button_help"
            android:layout_centerVertical="true"
            android:layout_alignParentRight="true"/>

    </RelativeLayout>

    <RelativeLayout 
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        android:layout_gravity="fill_vertical">

        <LinearLayout   
            android:id="@+id/buttonBar"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical"
            android:gravity="center"
            android:background="#bdbdbd"
            android:layout_alignParentBottom="true">

            <RelativeLayout   
                android:id="@+id/bottomButtomBar"
                android:layout_width="fill_parent"
                android:layout_height="fill_parent"
                android:layout_marginTop="5dp"
                android:layout_marginBottom="5dp"
                android:orientation="horizontal">
                <Button 
                    android:id="@+id/myGroups"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_marginLeft="15dp"
                    android:layout_alignParentLeft="true"
                    android:layout_centerVertical="true"
                    android:text="@string/myGroups"
                    android:gravity="center"
                    android:textSize="13dp"
                    android:textColor="#000000"
                    android:background="@layout/button_meus_grupos"/>
                <Button 
                    android:id="@+id/createGroups"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_gravity="center"
                    android:layout_centerInParent="true"
                    android:text="@string/createGroups"
                    android:gravity="center"
                    android:textSize="13dp"
                    android:textColor="#000000"
                    android:background="@layout/button_criar_grupos"/>
                <Button 
                    android:id="@+id/configurations"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_marginRight="15dp"
                    android:layout_alignParentRight="true"
                    android:layout_centerVertical="true"
                    android:text="@string/configurations"
                    android:gravity="center"
                    android:textSize="13dp"
                    android:textColor="#000000"
                    android:background="@layout/button_configuracoes"/>
            </RelativeLayout>
        </LinearLayout>
        <LinearLayout 
            android:layout_above="@id/buttonBar"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:orientation="vertical" >
            <LinearLayout 
                    android:id="@+id/listContent"
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content"
                    android:orientation="vertical" >
                    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
                        android:layout_width="fill_parent"
                        android:layout_height="wrap_content"
                        android:background="#ffffff" 
                        android:orientation="vertical"
                    >
                        <RelativeLayout
                            android:id="@+id/searchBarLayout"
                            android:layout_width="fill_parent" 
                            android:layout_height="48dp"
                            android:orientation="horizontal"
                            android:background="#ffffff"
                            android:gravity="center_vertical"
                            android:clickable="true"
                        >
                            <TextView
                                android:id="@+id/myGroupsLabel"
                                android:layout_width="wrap_content"
                                android:layout_height="wrap_content"
                                android:text="@string/myGroups"
                                android:layout_centerInParent="true"
                                android:textColor="#bdbdbd"
                                android:textSize="16dp"
                                android:textStyle="bold"
                            />
                            <ImageView
                                android:layout_alignParentRight="true"
                                android:layout_centerVertical="true"
                                android:layout_marginRight="15dp"
                                android:layout_width="wrap_content"
                                android:layout_height="wrap_content"
                                android:background="@drawable/ic_search" />
                        </RelativeLayout>
                        <View android:layout_height="2dip" 
                            android:layout_width="wrap_content" 
                            android:background="#cccccc"  
                        />        
                        <ListView android:id="@+id/listview"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:textColor="#000000"
                            android:cacheColorHint="#000000"
                        />
                        <Button
                            android:id="@+id/buttonCreateGroup"
                            android:layout_width="200dp"
                            android:layout_height="wrap_content"
                            android:layout_marginBottom="20dp"
                            android:background="@layout/button_confirm"
                            android:layout_gravity="center_horizontal"
                            android:text="@string/createOneGroup"
                            android:textColor="#FFFFFF"
                            android:textSize="22dp"
                            android:layout_marginTop="15dp"
                        />
                    </LinearLayout>
            </LinearLayout>
        </LinearLayout>
    </RelativeLayout>
</LinearLayout>

フッターを固定し、リストの最後まで下にスクロールしてボタンを表示する方法について、誰かがヒントを持っていますか?ボタンがリストの最後のアイテムのように見えるようにしたいと思います。

編集:XML全体が投稿されました

4

4 に答える 4

1

ListViewと は、設定する必要があるボタンとに あるButton必要がありますRelativeLayoutandroid:layout_below="@id/listview"

<RelativeLayout 
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent">

<ListView
    android:id="@+id/listview"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:cacheColorHint="#000000"
    android:textColor="#000000" />

<Button
    android:layout_below="@id/listview"
    android:id="@+id/buttonCreateGroup"
    android:layout_width="200dp"
    android:layout_height="wrap_content"
    android:layout_gravity="center_horizontal"
    android:layout_marginBottom="20dp"
    android:layout_marginTop="15dp"
    android:background="@layout/button_confirm"
    android:text="@string/createOneGroup"
    android:textColor="#FFFFFF"
    android:textSize="22dp" />

</RelativeLayout>
于 2012-11-29T19:53:17.210 に答える
1

次の方法で試してください。

<RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <RelativeLayout                               //Header
       android:layout_alignParentTop="true">     
    </RelativeLayout> 

      <ListView 
         android:layout_below="@+id/header" />

    <RelativeLayout                               //Button(footer)
       android:layout_alignParentBottom="true"
       android:layout_below="@+id/listView" >      
    </RelativeLayout>  

</RelativeLayout>
于 2012-11-30T12:35:15.283 に答える
1

上記で説明した正確な要件を達成できる唯一の方法は、次のことを行うことでした。

-リスト項目のレイアウトを含む XML ファイルに、 のボタンを追加しましたandroid:visibility="gone"

-私のカスタム ListView アダプターでは、常に最後の位置に空のオブジェクトを追加します。リストの最後であることを示すフラグを付けてオブジェクトを追加するだけです。

getView()-カスタム アダプターでオーバーライドするメソッドで、現在の位置にあるオブジェクトに、リストの最後であることを示すフラグがあるかどうかを確認します。そうであれば、ボタンの可視性を VISIBLE に設定し、それ以外の場合は他のコンポーネントを塗りつぶします。

誰かが同じ問題に直面していて、私のソリューションのサンプル コードが必要な場合は、ここで質問してください。

于 2012-12-03T20:37:04.433 に答える
0

これを試して:

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

    <RelativeLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:gravity="center_vertical"
        android:orientation="horizontal" >

        <TextView
            android:id="@+id/title"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerVertical="true"
            android:layout_marginBottom="5dp"
            android:layout_marginLeft="10dp"
            android:layout_marginTop="5dp"
            android:text="baseTitle"
            android:textColor="#FFFFFF"
            android:textSize="18dp"
            android:textStyle="bold" />

        <Button
            android:id="@+id/buttonHelp"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentRight="true"
            android:layout_centerVertical="true"
            android:layout_gravity="center_vertical" />
    </RelativeLayout>

    <RelativeLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="fill_vertical"
        android:orientation="vertical" >

        <LinearLayout
            android:id="@+id/buttonBar"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_alignParentBottom="true"
            android:gravity="center"
            android:orientation="vertical" >

            <RelativeLayout
                android:id="@+id/bottomButtomBar"
                android:layout_width="fill_parent"
                android:layout_height="fill_parent"
                android:layout_marginBottom="5dp"
                android:layout_marginTop="5dp"
                android:orientation="horizontal" >

                <Button
                    android:id="@+id/myGroups"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_alignParentLeft="true"
                    android:layout_centerVertical="true"
                    android:layout_marginLeft="15dp"
                    android:gravity="center"
                    android:text="myGroups"
                    android:textColor="#000000"
                    android:textSize="13dp" />

                <Button
                    android:id="@+id/createGroups"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_centerInParent="true"
                    android:layout_gravity="center"
                    android:gravity="center"
                    android:text="createGroups"
                    android:textColor="#000000"
                    android:textSize="13dp" />

                <Button
                    android:id="@+id/configurations"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_alignParentRight="true"
                    android:layout_centerVertical="true"
                    android:layout_marginRight="15dp"
                    android:gravity="center"
                    android:text="configurations"
                    android:textColor="#000000"
                    android:textSize="13dp" >
                </Button>
            </RelativeLayout>
        </LinearLayout>

        <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:layout_above="@id/buttonBar"
            android:orientation="vertical" >

            <LinearLayout
                android:id="@+id/listContent"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:orientation="vertical" >

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

                    <RelativeLayout
                        android:id="@+id/searchBarLayout"
                        android:layout_width="fill_parent"
                        android:layout_height="48dp"
                        android:clickable="true"
                        android:gravity="center_vertical"
                        android:orientation="horizontal" >

                        <TextView
                            android:id="@+id/myGroupsLabel"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:layout_centerInParent="true"
                            android:text="myGroups"
                            android:textColor="#bdbdbd"
                            android:textSize="16dp"
                            android:textStyle="bold" />

                        <ImageView
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:layout_alignParentRight="true"
                            android:layout_centerVertical="true"
                            android:layout_marginRight="15dp" >
                        </ImageView>
                    </RelativeLayout>

                    <ScrollView
                        android:id="@+id/scroll"
                        android:layout_width="fill_parent"
                        android:layout_height="280dip"
                        android:layout_margin="7dip"
                        android:scrollbars="none" >

                        <LinearLayout
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:orientation="vertical" >

                            <ListView
                                android:id="@+id/listview"
                                android:layout_width="wrap_content"
                                android:layout_height="wrap_content"
                                android:cacheColorHint="#000000"
                                android:textColor="#000000" />

                            <Button
                                android:id="@+id/buttonCreateGroup"
                                android:layout_width="200dp"
                                android:layout_height="wrap_content"
                                android:layout_gravity="center_horizontal"
                                android:layout_marginBottom="20dp"
                                android:layout_marginTop="15dp"
                                android:text="createOneGroup"
                                android:textColor="#FFFFFF"
                                android:textSize="22dp" />
                        </LinearLayout>
                    </ScrollView>
                </LinearLayout>
            </LinearLayout>
        </LinearLayout>
    </RelativeLayout>

</LinearLayout>
于 2012-11-30T05:48:09.300 に答える