如何使用触摸侦听器上的视图设置布局参数?

时间:2014-11-25 15:49:05

标签: android view ontouchlistener ontouchevent layoutparams

Expected Result or Actual Screen

我想像这样xml layout of screen

创建绘图布局

灰色底部的布局就像一个抽屉,可以通过上下拖动来调整。所以我想在用户上手或下手时调整其高度。我已经使用了onTouchListener但是我没有得到预期的结果。我的触摸列表是 onTouchListener

我还提到git lib source,需要帮助或任何建议来实现底部抽屉,如屏幕所示。

1 个答案:

答案 0 :(得分:0)

像这样检查smth:

setOnTouchListener(new OnTouchListener() {

    @Override
    public boolean onTouch(View v, MotionEvent event) {
        ((LayoutParams)slidingLayout.getLayoutParams()).marginTop=event.getY();
        return true;
    }
}

整个父视图的监听器

编辑: 哦,我的阅读技巧真的很差,我假设你想通过触摸蓝色小视图来获得这个视图...

所以对于第一个你必须在这个视图中计算触摸位置(ACTION_DOWN) - 多少高于底部 - 这将是你的起点,即所谓的“0”。然后当ACTION_MOVE使用event.getY()和先前计算的起始点来设置marginTop(或者如果API允许则为setY())。对于ACTION_UP,您可能会识别是否拖出整个布局,如果没有,您可能会设置marginTop固定值wholeViewHeight - draggedViewDesiredHeight