【问题标题】:How to set layout params using view's on touch listener?如何使用视图的触摸监听器设置布局参数?
【发布时间】:2014-11-25 15:49:05
【问题描述】:

我想创建这样的绘图布局xml layout of screen

底部的灰色布局就像一个抽屉,可以通过上下拖动来调整。所以我想在用户抬起或放下它时调整它的高度。我为此使用了 onTouchListener,但没有得到预期的结果。我的接触者是 onTouchListener

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

【问题讨论】:

    标签: android view ontouchlistener touch-event layoutparams


    【解决方案1】:

    像这样检查:

    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 的起点(或 setY() 如果 API 允许)。对于 ACTION_UP,您可能会识别出整个布局是否被拖出,如果没有,您可能会设置 marginTop 固定值 wholeViewHeight - draggedViewDesiredHeight

    【讨论】:

      猜你喜欢
      • 2018-01-16
      • 2013-03-20
      • 2023-03-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多