我想使用SystemUiHider活动设置来创建一个界面,其中顶部和底部菜单中的某些元素隐藏在向下滚动中。但触摸和向上滚动显示。
默认的SystemUiHider具有此方法来执行检测手势
// Set up the user interaction to manually show or hide the system UI.
contentView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (TOGGLE_ON_CLICK) {
mSystemUiHider.toggle();
} else {
mSystemUiHider.show();
}
}
//want an onscrolldown listener
});
我如何修改它以检测我想要的信息类型。 OnClickListener可以检测滚动吗?或者我是否需要使用其他类型的监听器或自定义手势。
答案 0 :(得分:2)
LarsWerkman QuickReturnListView开源项目似乎正在做你所希望的。将您的项目包括在内,以确定它是否符合您的要求,或者根据您的需求实施和定制。
答案 1 :(得分:1)
我不确定我是否理解正确。但是,我猜你正在寻找手势检测。在这种情况下,为它设置onTouchListener并覆盖onTouchListener
@Override
public boolean onTouch(View v, MotionEvent event) {
switch (event.getAction())
{
case MotionEvent.ACTION_DOWN:
{
canHandleMove=true;
lastY = touchevent.getY();
Log.d("tag", "touch down at "+lastX);
break;
}
case MotionEvent.ACTION_UP:
case MotionEvent.ACTION_MOVE:
{
if(canHandleMove)
{
canHandleMove=false;
float currentY = event.getY();
Log.d("tag", "touch up at "+currentY);
float diff=((lastY<currentY)?(currentY-lastY):(lastY-currentY));
if(diff>10)
{
if (lastY < currentY)
{
// Move Up
}
if (lastY > currentY)
{
// Move Down
}
}
break;
}
}
}
return true;
}