私の質問が理解できるかどうかわかりません。Image
レイアウトにとがありViewGroup
ます。は、ドラッグ アンド ドロップできるアイテムがある にViewGroup
匹敵します。GridView
今、私は自分のアイテムをViewGroup
画像の上にドラッグすることに興味がありますが、試行するたびに、画像の後ろに消えるため、アイテムの z-index が低いようです。
とそのアイテムを組み合わせてみbringToFront
ましたが、うまくいきませんでした。さて、私の質問は、アイテムを兄弟の前ViewGroup
に持ち込むことさえ可能かどうかです. 誰もそれを経験したことがありますか?viewgroups
viewgroups
私の xml は次のようになります。どこにGridView
あるのですかViewgroup
...画像リソースと画像の可視性はコードで設定されています。
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/relative_gridview_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:tag="@string/tag_fragment_GridView"
android:background="#FFF"
android:orientation="vertical" >
<ImageView
android:id="@+id/img"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:visibility="gone" />
<de.test.GridView
android:id="@+id/grid_view1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_below="@id/img"
android:background="#FFF"
android:gravity="center"
android:numColumns="auto_fit"
android:stretchMode="none"
android:tag="grid_view_tag" >
</de.test.GridView>
編集: このライブラリhttps://github.com/openaphid/android-flipを使用して反転できる動的な量のページがあるため、BaseAdapter を使用してレイアウトを表示します。
私が作成するレイアウトは次のようになります。
public View loadView(final View view, final int position) {
final GridView dgv = (GridView) view
.findViewById(R.id.grid_view1);
dgv.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(android.widget.AdapterView<?> arg0, View v,
int position, long arg3) {
// Simple click listener for the items...
}
});
dgv.getViewTreeObserver().addOnGlobalLayoutListener(
new OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
if (Build.VERSION.SDK_INT < 16) {
dgv.getViewTreeObserver()
.removeGlobalOnLayoutListener(this);
} else {
dgv.getViewTreeObserver()
.removeOnGlobalLayoutListener(this);
}
int displayHeight = view.getHeight();
int displayWidth = view.getWidth();
dgv.initChilds(displayWidth, displayHeight,
2,
2);
} else {
mImage = (ImageView) view
.findViewById(R.id.img);
mImage.getLayoutParams().height = displayHeight / 2;
mImage.setImageResource(R.drawable.bild);
dgv.initChilds(displayWidth,
displayHeight / 2, 2,
2);
}
updateGridView();
}
});
mList.add(view);
return view;
}
initChilds() メソッドは、ビューグループの各アイテムのサイズを決定します。ロングクリックでビューグループ項目を選択した際に、最前面に設定したいと考えています。longclicklistener は次のようになります。
@Override
public boolean onLongClick(View view) {
draggedItem = getDraggedView(); draggedItem.bringToFront();
callback.bringGridToFront();
return true;
}
このように項目を前面に移動しようとしましたが、うまくいきません...コールバック変数は、現在次のコードを実行する、bringGridToFront()-Method を呼び出す baseadapter クラスのインスタンスです。
public void bringGridToFront() {
View view = mList.get(mCurrentPage);
RelativeLayout rl = (RelativeLayout) view.findViewById(R.id.relative_gridview_layout);
GridView dgv = (GridView) view.findViewById(R.id.grid_view1);
rl.bringChildToFront(dgv);
}