3

ユーザーがリストビューを上にスクロールするとトップバーを非表示にし、ユーザーが下にスクロールするとすぐに再び表示されるようにしたい. 下にスクロールするとGoogle Plusの下部メニューが表示され、上にスクロールするとすぐに表示されるのと同じです。最初に表示されるアイテムを提供するスクロールを試しました。しかし、リストビューアイテムを完全にスクロールして前の最初の表示アイテムを取得する必要があるため、役に立ちません。誰か助けてください私はこの問題でひどく立ち往生しています。

4

1 に答える 1

0

考えられる解決策は、ListView の下に View (textView または ImageView を含むレイアウト) を追加することです。

<ListView
    android:id="@android:id/list"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_weight="1" >
</ListView>
<LinearLayout
    android:id="@+id/viewid"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_weight="0" />

重みは、両方のコンポーネントを表示するために重要です。その後、listView の onScrollListener を実装します。

setOnScrollListener(new OnScrollListener() {
    @Override
    public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {
        //get the showed item num, and if its equal to total, you can hide the view
        //get a reference to your viewid
        viewid.setVisibility(View.GONE);
    }

    @Override
    public void onScrollStateChanged(AbsListView view, int scrollState) {

    }
});

最後の行に到達したら、一番下の View に setVisibility(View.GONE) を設定します。ユーザーが上にスクロールしたときにこのビューを再度表示する場合は、コードを変更します。もちろん、別のレイアウト、textView などを使用できます。

アップデート

レイアウトを少し試してみましたが、レイアウト ファイルには別の解決策があります。ここでは、一番下のビューが listView をオーバーレイしているため、この textView の削除はスムーズです。

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >
    <ListView
        android:id="@+id/listView1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" >
    </ListView>
    <TextView
        android:id="@+id/textView1"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:padding="5dp"
        android:background="#ffffff"
        android:layout_alignParentBottom="true"
        android:text="..." />
</RelativeLayout>

詳細はこちら

于 2013-10-08T06:55:05.633 に答える