我想自定义一个左侧FrameLayout的ViewGroup。 可以修改framelayout的大小。 这是我的代码
@Override
public boolean onTouchEvent(MotionEvent ev) {
final int action = MotionEventCompat.getActionMasked(ev);
final int actionIndex = MotionEventCompat.getActionIndex(ev);
boolean wantTouchEvents = true;
switch (action) {
case MotionEvent.ACTION_DOWN: {
Log.i("action_down", "action_down");
final float x = ev.getX();
final float y = ev.getY();
mInitialMotionX = x;
mInitialMotionY = y;
break;
}
case MotionEvent.ACTION_MOVE: {
final float x = ev.getX();
final float y = ev.getY();
for (int i = 0; i < getChildCount(); i++) {
View view = getChildAt(i);
if (isDrawerView(view)) {
LayoutParams params = (LayoutParams) view.getLayoutParams();
params.width = DRAWER_WIDTH + (int) (x - mInitialMotionX);
view.setLayoutParams(params);
}
}
break;
}
在ontouchevent()方法中,当action_move时,我设置了framelayout的宽度。但是我无法判断我设置的宽度。因为framelayout的宽度变化不是线性的。 例如,我设置framelayout的最大宽度为300dp。 当宽度变大时,如果我快速移动x,则框架布局的宽度可以是310或330或其他。 我只想准确判断framelayout的大小。enter image description here