В Android, как я могу определить максимальную маржу при использовании MotionEvent?
Я использую MotionEvent, чтобы перетаскивать виды вокруг по оси Y. Однако я не хочу, чтобы вид был ниже, чем до конца экрана. В настоящее время это может выйти за рамки того, что действительно расстраивает.
Соответствующий код:
public boolean onTouch(View view, MotionEvent event) {
final int X = (int) event.getRawX();
final int Y = (int) event.getRawY();
switch (event.getAction() & MotionEvent.ACTION_MASK) {
case MotionEvent.ACTION_DOWN:
RelativeLayout.LayoutParams lParams = (RelativeLayout.LayoutParams) view.getLayoutParams();
_yDelta = Y - lParams.bottomMargin;
Log.i("Test1231", "ACTION_DOWN");
break;
case MotionEvent.ACTION_UP:
Log.i("Test1231", "ACTION_UP");
break;
case MotionEvent.ACTION_POINTER_DOWN:
Log.i("Test1231", "ACTION_POINTER_DOWN");
break;
case MotionEvent.ACTION_POINTER_UP:
Log.i("Test1231", "ACTION_POINTER_UP");
break;
case MotionEvent.ACTION_MOVE:
RelativeLayout.LayoutParams layoutParams = (RelativeLayout.LayoutParams) view.getLayoutParams();
layoutParams.bottomMargin = Y - _yDelta;
view.setLayoutParams(layoutParams);
Log.i("Test1231", "ACTION_MOVE");
break;
}
_root.invalidate();
return true;
}
1 ответ
Решение
Попробуйте "match_parent" вид внутри корневого представления. Вы должны сделать это до "переключения". И когда указатель вверх (ACTION_UP в вашем случае), верните все в wrap_content).