4
私はプログラムで1つのビューをドラッグし、初期化の目的で別のビューの上にリリースしたいと考えています。Android - プログラムでドラッグアンドドロップを実行する
編集:私はあなたがレイアウトからビューを削除し、(それはあなたが探しているものの場合)他のレイアウトに追加することができ、ドラッグ&ドロップ
私はプログラムで1つのビューをドラッグし、初期化の目的で別のビューの上にリリースしたいと考えています。Android - プログラムでドラッグアンドドロップを実行する
編集:私はあなたがレイアウトからビューを削除し、(それはあなたが探しているものの場合)他のレイアウトに追加することができ、ドラッグ&ドロップ
をシミュレートする方法を探しています
ViewGroup oldGroup = (ViewGroup) findViewById(R.id.some_layout);
ViewGroup newGroup = (ViewGroup) findViewById(R.id.some_other_layout);
Button button = (Button) oldGroup.findViewById(R.id.a_button);
oldGroup.removeView(button);
newGroup.addView(button);
に
ドラグはありません&ドロップアニメーションとそれは奇妙な結果を与えるかもしれませんが、可能性があります。
ViewGroup
は、LinearLayout
,RelativeLayout
である。
public boolean onDrag(View v, DragEvent event);
はあなただけnull
DragEvent
を期待:手動onDragListenerを呼び出すことができますが、1つの問題があるドラッグ&ドロップイベントをシミュレートするための
偽装パーセルを介して作成する方法があるかもしれませんが、それは醜いものになります。
private void initializationTest() {
DragEvent event = null;
/* maybe sth like that
Parcel source = Parcel.obtain();
source.writeInt(1234);
event = DragEvent.CREATOR.createFromParcel(source);
*/
onDrag(theTargetView, event);
}
もう1つの可能性は、もしそれがうまくいくなら、toucheventsしかしIdkを作ることです。少なくともmonkeyはおそらくそれを行うことができます。
zapl、彼はドラッグアンドドロップフレームワークについて質問しています。 –
@imrankhanあなたはおそらく正しいでしょう – zapl
ドラッグ・アンド・ドロップ・リスナーはすでにすべてをやる必要があるので、私は利便性の理由から2番目の答えを探していました。 。簡単/エレガントな解決策がないように思われるので別の方法でやり直さなければならないかもしれません – Schnodahipfe