実際には、Imageview とその上にリストビューを保持するビューページャーがあります。そのため、リストビューをクリックすると、リストビューと下部バーを非表示にして、ビューページャーのすべてのビューで ImageView をフルスクリーンにする必要があります。そして、画像ビューのonclickはビューを取り戻します。しかし、私の問題は次のとおりです。
- ビュー全体でタップを処理するために、Listview に onClickListner を実装することはできません。onItemclickListner を使用することを余儀なくされており、アイテムをクリックしたときにのみ非表示になります (これは望ましくありません)。
- ページャー内のリストビュー(フラグメント内にあります)をクリックすると、現在のビューを除くすべてのビューが非表示になりませんが、アクションバーとボトムバー(フラグメントアクティビティ上)を非表示にすることができます。
参照用のスクリーンショット:
どうすればこれを達成できますか、これはビューを非表示にするより良い方法があります。
フラグメントの側にある私の 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);
}
});