我希望用户能够在布局窗口中移动窗口小部件(在同一窗口中拖放)。
是否有一种简单方法可以做到这一点。我看过拖放示例,这些示例大约有1000行代码,可以在屏幕和不同的小部件之间进行拖动,但我打算只在屏幕上移动小部件。
我正在使用API级别4,因此我无法使用http://developer.android.com/guide/topics/ui/drag-drop.html。
答案 0 :(得分:1)
我不确定它是否是一个很好的解决方案,但是它可行,也许你应该检查一些泄漏。
public class DraGnDroPActivity extends Activity implements OnTouchListener {
private TextView ll1;
private FrameLayout layout;
private float xAxis = 0;
private float yAxis = 0;
private TextView newLinearLayout;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
layout = (FrameLayout) findViewById(R.id.field);
ll1 = (TextView) findViewById(R.id.ll);
newLinearLayout = ll1;
ll1.setOnTouchListener(this);
}
public void redraw() {
layout.removeAllViews();
newLinearLayout.setPadding((int) xAxis, (int) yAxis, 0, 0);
layout.addView(newLinearLayout);
}
@Override
public boolean onTouch(View v, MotionEvent event) {
switch (event.getAction()) {
case MotionEvent.ACTION_MOVE:
xAxis = event.getX();
yAxis = event.getY();
redraw();
case MotionEvent.ACTION_UP:
System.out.println("intermediate finished");
}
return true;
}
}
和XML:
<TextView
android:id="@+id/ll"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Testing" />