1

実際には、Imageview とその上にリストビューを保持するビューページャーがあります。そのため、リストビューをクリックすると、リストビューと下部バーを非表示にして、ビューページャーのすべてのビューで ImageView をフルスクリーンにする必要があります。そして、画像ビューのonclickはビューを取り戻します。しかし、私の問題は次のとおりです。

  1. ビュー全体でタップを処理するために、Listview に onClickListner を実装することはできません。onItemclickListner を使用することを余儀なくされており、アイテムをクリックしたときにのみ非表示になります (これは望ましくありません)。
  2. ページャー内のリストビュー(フラグメント内にあります)をクリックすると、現在のビューを除くすべてのビューが非表示になりませんが、アクションバーとボトムバー(フラグメントアクティビティ上)を非表示にすることができます。

参照用のスクリーンショット:

ここに画像の説明を入力

どうすればこれを達成できますか、これはビューを非表示にするより良い方法があります。

フラグメントの側にある私の ListView は次のとおりです。

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

    <ImageView
        android:id="@+id/imageView"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />

    <ListView
        android:id="@+id/listView"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="@android:color/transparent"
        android:cacheColorHint="@android:color/transparent"
        android:divider="@android:color/transparent"
        android:listSelector="@android:color/transparent"
        android:scrollbars="none" />

</RelativeLayout>

Fragment Activity のレイアウトは次のとおりです。

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/detailLayout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:clickable="true"
    android:orientation="vertical" >

    <android.support.v4.view.ViewPager
        android:id="@+id/pager"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_above="@+id/form" >
    </android.support.v4.view.ViewPager>

    <RelativeLayout
        android:id="@+id/form"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:orientation="horizontal"
        android:padding="2dp" >

        <EditText
            android:id="@+id/editText"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentLeft="true"
            android:layout_centerVertical="true"
            android:layout_toLeftOf="@+id/btnSend"
            android:drawableRight="@drawable/edit_keyboard"
            android:inputType="textMultiLine"
            android:maxLines="3" />

        <ImageButton
            android:id="@+id/btnSend"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentRight="true"
            android:layout_centerVertical="true"
            android:src="@drawable/send" />
    </RelativeLayout>

</RelativeLayout>

ここでは、ListView への onitemclicklister で成功しています。

listComments.setOnItemClickListener(new OnItemClickListener() {

            @Override
            public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
                // TODO Auto-generated method stub

                if (getSherlockActivity().getSupportActionBar().isShowing()) {
                    getSherlockActivity().getSupportActionBar().hide();
                    listComments.setVisibility(View.GONE);
                    form.setVisibility(View.GONE);
                } else {
                    getSherlockActivity().getSupportActionBar().show();
                    listComments.setVisibility(View.VISIBLE);
                    form.setVisibility(View.VISIBLE);
                }
            }
        });

        imageView.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                getSherlockActivity().getSupportActionBar().show();
                listComments.setVisibility(View.VISIBLE);
                form.setVisibility(View.VISIBLE);
            }
        });
4

1 に答える 1

0

listView のクリック可能なプロパティを設定して確認していただけますか? また、新しい編集テキストをに追加するたびに、動的に追加しますか? もしそうなら、リストビューに項目を動的に追加していることを意味します。listView は、ビュー自体の項目をクリックしたかどうかを認識しないため、項目をクリックすると優先されるため、コールバックが登録されます。

于 2013-02-06T04:28:51.823 に答える