0

長いタッチを使用してドラッグアンドドロップをアクティブにしてアイテムを並べ替えることができるグリッドの実例があります。TextViewたとえば、アイテムが単純なビューである場合、またはImageViewアイテムがLinearLayoutsレイア​​ウト自体のみが表示される場合、すべてがうまく機能しています。

この投稿から Tom Quinsn のグリッドを使用しています (Tom に感謝!!!)。

Android Gridview のドラッグ アンド ドロップの例

独自のクラスとオーバーライドLinearLayoutsを派生させれば作業を開始できますが、これにより、この関数内のレイアウトで子コントロールの位置をハードコーディングする必要があります。 LinearLayoutonLayout()

理想的には、XML ファイル内で項目のレイアウトを定義し、グリッドを処理する Control に追加する前にそれらを拡張できるようにしたいと考えています。何らかの理由で、トムのコードで定義されているように、フレームワークがビュー内に含まれる子のレイアウト関数を呼び出していないと推測していDraggableGridViewますが、それがなぜなのか理解できません。

4

2 に答える 2

0

これは の既知の問題DraggableGridViewです。残念ながら、私はまだ修正していません。DGV を書いたとき、ビューがどのように配置されているかを完全には把握していませんでした。配置する前に、DGV で各子を測定してみるとよいでしょう。次のようなものを追加します。

getChildAt(i).measure(MeasureSpec.makeMeasureSpec(childSize, MeasureSpec.EXACTLY), MeasureSpec.makeMeasureSpec(childSize, MeasureSpec.EXACTLY));

この行のレイアウトの前に:

getChildAt(i).layout(xy.x, xy.y, xy.x + childSize, xy.y + childSize);
于 2013-05-30T07:26:23.690 に答える
0

このリンクの助けを借りて、独自のドラッグ アンド ドロップ アプリを開発しています。このコードを Tom Quesinsn のコードと比較してみてください。また、GridView のさまざまな子を取得し、ドロップを受け入れる「ドロップ ターゲット」としてそれらを追加し、ドラッグしているビューのイメージをコピーします。

于 2012-11-07T19:34:32.533 に答える